概述
PHP 中的變數以一個美元符號後面跟著變數名稱來表示。
變數名是區分大小寫的。
一個有效的變數名稱由字母或底線開頭,後面跟上任意數量的字母,數字,或者下劃線。
$this 是一個特殊的變量,它不能被賦值。
變數預設總是傳值賦值。如果需要引用賦值,使用&
只有有名字的變數可以引用賦值
<code>$foo = 25; $bar = &$foo; // 合法的赋值 $bar = &(24 * 7); // 非法; 引用没有名字的表达式 </code>
雖然在 PHP 中並不需要初始化變量,但對變數進行初始化是個好習慣。未初始化的變數具有其類型的預設值- 布林類型的變數預設值是FALSE,整形和浮點型變數預設值為零,字串型變數(例如用於echo 中)預設值是空字串以及陣列變數的預設值是空數組。
預定義變數
<code>超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量 $GLOBALS — 引用全局作用域中可用的全部变量 $_SERVER — 服务器和执行环境信息 $_GET — HTTP GET 变量 $_POST — HTTP POST 变量 $_FILES — HTTP 文件上传变量 $_REQUEST — HTTP Request 变量 $_SESSION — Session 变量 $_ENV — 环境变量 $_COOKIE — HTTP Cookies $php_errormsg — 前一个错误信息 $HTTP_RAW_POST_DATA — 原生POST数据 $http_response_header — HTTP 响应头 $argc — 传递给脚本的参数数目 $argv — 传递给脚本的参数数组 </code>
PHP 中的許多預定義變數都是“超全域的”,這意味著它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以存取它們。
變數作用域
全域變數在函數中自動無效
<code><?php $a = 1; /* global scope */ function Test() { echo $a; /* reference to local scope variable */ } Test(); ?> </code>
PHP 中全域變數在函數中使用時必須宣告為global
<code><?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?> </code>
在全域範圍內存取變數的第二個方法,是用全域變數特殊的PHP 自訂$GLOBALS
陣列
<code><?php $a = 1; $b = 2; function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum(); echo $b; ?> </code>
靜態變數
變數範圍的另一個重要特性是靜態變數(static variable)。靜態變數僅在局部函數域中存在,但當程式執行離開此作用域時,其值並不會遺失。
<code><?php function test() { static $a = 0; echo $a; $a++; } for ($i = 0; $i < 10; $i++) { test(); } // 0123456789 ?> </code>
可變變數
一個變數的變數名稱可以動態的設定和使用
<code>$Bar = "a"; $Foo = "Bar"; $World = "Foo"; $Hello = "World"; $a = "Hello"; $a; //Returns Hello $$a; //Returns World $$$a; //Returns Foo $$$$a; //Returns Bar $$$$$a; //Returns a </code>
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了PHP中的變量,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。