1. 程式人生 > >Php全域性變數和區域性變數

Php全域性變數和區域性變數

程式碼1:函式內部使用函式外部變數錯誤方法

<?php
$name = 'fish';
function animal() {
    echo $name;
}
animal();

執行結果:Notice: Undefined variable: name in D:\wamp\www\index.php on line 5
由此得知,animal()方法中的namename不是同一個變數。

如何才能在函式內部訪問到函式外部的變數呢?可以在函式內部或者外部將namename之前加上global即可;如下所示:

程式碼2:函式內部使用函式外部變數正確方法

<?php
$name = 'fish';
function animal() {
    global $name;
    echo $name;
}
animal();

<?php
global $name;
function animal() {
    $name = 'fish';
    echo $name;
}
animal();

執行結果:fish

那麼,如果$name變數是在函式內部定義的,能夠在函式外部或者別的函式中使用到嗎?答案是顯而易見的,不能,這就是區域性變數,可以看下下面的程式碼段:

程式碼3:函式外部使用函式內部變數錯誤方法

<?php
function animal() { $name = 'fish'; } echo $name;

執行結果:Notice: Undefined variable: name in D:\wamp\www\index.php on line 6
$name變數只能在animal()函式內部有意義。問題來了,如果我非要想在函式外部也能使用到函式內部定義的變數該怎麼辦?
“可以在函式內部定義變數時將其宣告為global”,請看如下程式碼段:

程式碼4:函式外部使用函式內部變數正確方法

<?php
function animal() {
    global $name;
    $name
= 'fish'; } animal(); echo $name;

執行結果:fish
可以看到,我們先執行了animal()方法,然後再使用nameanimal()name的操作,所以,需要記住的是,函式只有被呼叫了才有意義,且程式執行的順序時從上到下,從左往右的。