请看以下例子:

变量$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无门槛代金券