PHP 變量作用域
● local
● global
● static
● parameter
局部作用域、全局作用域
<?php $x = 50; // 全局變量 function myTest() { $y = 100; // 局部變量 }
PHP global 關(guān)鍵字
global 關(guān)鍵字用于函數(shù)內(nèi)訪問(wèn)全局變量。
在函數(shù)內(nèi)調(diào)用函數(shù)外定義的全局變量,可以在函數(shù)中的變量前加上 global 關(guān)鍵字。
<?php $x = 50; $y = 100; function myTest() { global $x, $y; $y = $x + $y; } myTest(); echo $y; // 輸出 150
PHP 將所有全局變量存儲(chǔ)在一個(gè)名為 $GLOBALS 的數(shù)組中。
所以上述代碼可以換一種寫(xiě)法:
<?php $x = 50; $y = 100; function myTest() { $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y']; } myTest(); echo $y;
PHP Static 作用域
PHP 當(dāng)一個(gè)函數(shù)完成時(shí),它的所有變量通常都會(huì)被刪除。為了有些局部變量不被刪除,可以在第一次聲明變量的時(shí)候使用 static 關(guān)鍵字。
<?php function myTest() { static $x = 0; echo $x; $x++; echo PHP_EOL; } myTest(); myTest(); myTest();
參數(shù)作用域 (形參)
參數(shù)聲明作為函數(shù)聲明的一部分。
<?php function myTest($x) { echo $x; } myTest('Galois'); myTest(8888);
小補(bǔ)充:
打印數(shù)組方式:
echo '<pre>'; print_r($arr);