回覆內容:
第一次遇到這種問題。有點好奇,題主是怎麼發現這個問題的?
我說下我的理解。
首先我們要先明確一下「
賦值」這個概念。
當 $a = 1; 的時候,並不是說加一個名字是 $a 值是 1 的資料。
當 $b = &$a; 的時候,也不是說把 $b 指向 $a 或相反 。
這個過程形象點說是這樣:
<code class="language-php"><span class="x">$a = 1;</span>
</code>
多讀讀php手冊,非常多例子
PHP: 變數範圍
PHP: 引用的解釋
PHP: 引用傳遞
PHP: 引用
變數
變數的範圍即它定義的上下文背景(也就是它的生效範圍)。大部分的
PHP 變數只有一個單獨的範圍。這個單獨的範圍跨度同樣包含了
include 和 require 引入的檔案。例如:
<code class="language-php"><span class="cp"><?php</span>
<span class="nv">$a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">include</span> <span class="s1">'b.inc'</span><span class="p">;</span><span class="cp">?></span><span class="x"></span>
</code>
<code class="language-text">global $a;
时会 新建 一个指向与外部$a同地址的指针
$GLOBALS['a'] = &$static_a;
时会 把外部$a 指针 指向 $static_a的内容,抛弃原先的指向
</code>