3
在PHP函數與靜態範圍工作時,我得到了這個例子:PHP靜態範圍重新聲明
function testStatic() {
static $a;
echo "here is a first time: ".$a."<br />";
$a = 23;
static $a = 100;
echo "here is a second time: ".$a."<br />";
}
當我運行像這樣
teststatic(); echo "<hr />";
teststatic();
此功能下面它的輸出結果:
這裏是一個:100
這裏是一個:23
這裏是一個:23
這裏是一個:23
但我希望它是以下幾點:
這裏是一個:空
這裏是一個:100
這裏是:100
這裏是一個:100
我一直在思考小時試圖解釋爲什麼我收到上述結果,但真正的失敗。 你能告訴我爲什麼我們有上面的結果嗎?謝謝!
看起來靜態變量的顯式定義首先被識別(就像函數一樣)。 –
我從來沒有見過像這樣的函數中定義的靜態。通常它們在類上下文中定義,然後在成員方法內部或類外部引用。 –