PHP 變數的四大作用域

Galois發表於2020-01-14

PHP 變數作用域

  • local
  • global
  • static
  • parameter

區域性作用域、全域性作用域

<?php
$x = 50; // 全域性變數

function myTest()
{
    $y = 100; // 區域性變數
} 

PHP global 關鍵字

global 關鍵字用於函式內訪問全域性變數。
在函式內呼叫函式外定義的全域性變數,可以在函式中的變數前加上 global 關鍵字。

<?php
$x = 50;
$y = 100;

function myTest()
{
    global $x, $y;
    $y = $x + $y;
}
myTest();
echo $y;  // 輸出 150

PHP 將所有全域性變數儲存在一個名為 $GLOBALS 的陣列中。

所以上述程式碼可以換一種寫法:

<?php
$x = 50;
$y = 100;

function myTest()
{
    $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
} 

myTest();
echo $y;

PHP Static 作用域

PHP 當一個函式完成時,它的所有變數通常都會被刪除。為了有些區域性變數不被刪除,可以在第一次宣告變數的時候使用 static 關鍵字。

<?php
function myTest()
{
    static $x = 0;
    echo $x;
    $x++;
    echo PHP_EOL;
}

myTest();
myTest();
myTest();

引數作用域(形參)

引數宣告作為函式宣告的一部分。

<?php
function myTest($x)
{
    echo $x;
}
myTest('Galois');
myTest(8888);

小補充:

列印陣列方式:

echo '<pre>';
print_r($arr);
本作品採用《CC 協議》,轉載必須註明作者和本文連結
不要試圖用百米衝刺的方法完成馬拉松比賽。

相關文章