请看以下例子:
变量$strWord是数组
array(1) {
["希"] => array(2) {
["end"] => int(0)
["腊"] => array(2) {
["end"] => int(1)
["怪"] => array(2) {
["end"] => int(0)
["我"] => array(1) {
["end"] => int(1)
}
}
}
}
}
public static function addKeyWord($strWord) {
$len = mb_strlen($strWord, 'UTF-8');
$arrHashMap = &self::$arrHashMap;
for ($i=0; $i < $len; $i++) {
$word = mb_substr($strWord, $i, 1, 'UTF-8');
// 已存在
if (isset($arrHashMap[$word])) {
if ($i == ($len - 1)) {
$arrHashMap[$word]['end'] = 1;
}
} else {
// 不存在
if ($i == ($len - 1)) {
$arrHashMap[$word] = [];
$arrHashMap[$word]['end'] = 1;
} else {
$arrHashMap[$word] = [];
$arrHashMap[$word]['end'] = 0;
}
}
// 传值
$arrHashMap = &$arrHashMap[$word];
}
}
这个两个引用是怎么赋值的?
答:引用就是 三个变量是同一个物理地址 哪个改变 其他都改变你发的我也没看懂逻辑
$arrHashMap = &self::$arrHashMap; 意思是$arrHashMap和self::$arrHashMap两个谁改变了 另一个也改变
$arrHashMap = &$arrHashMap[$word];同理$arrHashMap和$arrHashMap[$word]两个谁改变了 另一个也改变
AD:阿里云2000元代金券九折优惠点我领取 ¥2000元大礼包
AD:腾讯云2860元无门槛代金券,限时领取点我领取 ¥2860无门槛代金券
发表评论 取消回复