變量
php中的變量是用一個美元符號後面跟着變量名來表示,變量名是區分大小寫的。
- $this 是一個特殊的變量,它不能被賦值;
- php的變量賦值默認是傳值賦值,可以使用&來實現引用賦值;
- 只有有名字的變量纔可以引用賦值;
- 未初始化的變量具有其類型的默認值 - 布爾類型的變量默認值是 FALSE,整形和浮點型變量默認值是零,字符串型變量(例如用於 echo 中)默認值是空字符串以及數組變量的默認值是空數組;
- 注意到點(句號)不是 PHP 變量名中的合法字符
變量範圍
- 在用戶自定義函數中,一個局部函數範圍將被引入。任何用於函數內部的變量按缺省情況將被限制在局部函數範圍內。
- 函數內部,修改變量範圍至全局的方法有:使用global和$GLOBALS數組;
- 靜態變量僅在局部函數域中存在,但當程序執行離開此作用域時,其值並不丟失;
- 靜態聲明是在編譯時解析的,所以在聲明中用表達式的結果對其賦值會導致解析錯誤;
- 在函數之外使用 global 關鍵字不算錯。可以用於在一個函數之內包含文件時;
- 對於變量的 static 和 global 定義是以引用的方式實現的。例如,在一個函數域內部用 global 語句導入的一個真正的全局變量實際上是建立了一個到全局變量的引用。這有可能導致預料之外的行爲;
可變變量
- php支持可變變量,這很方便,這意味着一個變量的變量名可以動態的設置和使用。
- 要將可變變量用於數組,必須解決一個模棱兩可的問題。這就是當寫下 KaTeX parse error: Can't use function '$' in math mode at position 19: …] 時,解析器需要知道是想要 $̲a[1] 作爲一個變量呢,還是…a 作爲一個變量並取出該變量中索引爲 [1] 的值。解決此問題的語法是,對第一種情況用 KaTeX parse error: Expected '}', got 'EOF' at end of input: {a[1]},對第二種情況用 KaTeX parse error: Expected '}', got 'EOF' at end of input: {a}[1]。
超全局變量
- 超全局數組例如 $_POST 和 $_GET,自 PHP 4.1.0 起可用。
- 變量名中的點和空格被轉換成下劃線。例如
<input name="a.b" />
變成了$_REQUEST["a_b"]
。
常量
常量在腳本執行期間該值不能改變,範圍是全局的。