首頁 >後端開發 >PHP問題 >php中全域變數和局部變數的差別是什麼

php中全域變數和局部變數的差別是什麼

青灯夜游
青灯夜游原創
2021-09-17 17:33:023128瀏覽

區別:1、局部變數是在函數內部定義的變量,只能在定義它的函數內使用;而全域變數是定義在所有函數以外的變量,其作用域是目前原始碼的任何地方,但是在函數內部是不可用的。 2.局部變數會在函數呼叫結束時自動銷毀,全域變數則在程式結束運行時才會被銷毀。

php中全域變數和局部變數的差別是什麼

本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦

變數的作用範圍(可以被使用的範圍)稱為變數作用域,變數必須在其有效範圍內使用,如果超出有效範圍,變數就會失去其意義。依作用域可以將 PHP 變數分為全域變數和局部變數兩種。

可以在目前原始碼中任何地方(函數外部)使用的變數稱為全域變量,它們具有全域作用域;只能在對其進行定義的函數內部使用的變數稱為局部變量,它們具有局部作用域。

在 PHP 中,全域變數不能直接在函數內部使用;而局部變數也不能直接在函數外部使用。當然這也不是絕對的,透過一些方法還是可以實現在函數內呼叫全域變數、在函數外呼叫局部變數的,這些我們會在後面的學習中介紹。

局部變數與局部作用域

局部變數就是在函數的內部定義的變數,它只能在定義它的函數內使用。局部變數會在函數呼叫結束時自動銷毀。

【範例】下方定義一個名為example 的函數,並在函數內部定義一個局部變數a,然後分別在該函數內部及函數外部嘗試輸出變數a 的值,具體程式碼如下:

<?php
header("Content-type:text/html;charset=utf-8");
function example() {
	$a = "欢迎来到PHP中文网!";
	// 在函数内定义变量 a
	echo "局部变量 a 的值为:" . $a . "<br>";
}

example();
if ($a) {// 在函数外部调用 $a,如果 $a 存在则会打印下面的内容
	echo "在函数外部调用函数内的局部变量 a,其值为:" . $a;
}
?>

運行結果如下:

php中全域變數和局部變數的差別是什麼

透過運行結果可以看出,在函數外部並不能呼叫函數內部定義的局部變數,因為局部變數$a 的作用域是定義它的example() 函數,在函數以外的地方無法使用。

全域變數與全域作用域

全域變數就是定義在所有函數以外的變量,其作用域是目前原始碼的任何地方,但是在函數內部是不可用的。在程式運行期間全域變數會一直存在,只有程式結束執行時才會被銷毀。

【範例】定義一個全域變數a,並分別在函數內部和外部輸出全域變數的值,具體程式碼如下:

<?php
header("Content-type:text/html;charset=utf-8");
$a = "欢迎来到PHP中文网!";
// 在函数外部定义全局变量 a
function example() {
	if ($a) {
		echo "在函数内部调用全局变量 a,其值为:" . $a;
	}
}

example();
echo "在函数外部调用全局变量 a,其值为:" . $a;
?>

運行結果如下:

php中全域變數和局部變數的差別是什麼

透過運行結果可以看出,在函數內部並沒有成功呼叫到$a,但是在函數外部可以。

推薦學習:《PHP影片教學

以上是php中全域變數和局部變數的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn