所有 PHP 的變數前面都有一個 "$" 符號, 後面跟著變數的名字。 注意變數名稱是分大小寫的。
Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
備注: For our purposes here, a letter is a-z, A-Z, and the ASCII characters from 127 through 255 (0x7f-0xff).
$var = "Bob"; $Var = "Joe"; echo "$var, $Var"; // outputs "Bob, Joe" $4site = 'not yet'; // invalid; starts with a number $_4site = 'not yet'; // valid; starts with an underscore $t銛te = 'mansikka'; // valid; '?' is ASCII 228. |
在 PHP3 的時期, 指定給變數的都是值, 例如把一行表達式指定給變數的話, 變數所儲存的將是表達式計算出來的值。 它的引申意義是如果你把某變數指定給另一個變數後, 改變其中一個的內容並不會影響另外的一個。 想進一步瞭解這種指定變數方法, 請看 表達式一節。
PHP4 則提供了另一種指定變數的方法: 變數參照. 意思是新變數只是參照本來的變數中的值。 (換個說法, 新的變數只是本來的變數的"別名", 也可說新變數是舊變數的"指標") 無論改變哪一個變數, 改動都同時反映在另一個變數中。 由於舊變數的值並沒有被抄到新變數中, 所以這種指定變數的方法執行時會快一點, 但也只是一點而已。 只有在指定大型的陣列、物件或是在大量的迴圈操作中才會看出效益來。
作參照指定的方式是在被參照的變數(舊變數)前加上個(&) 符號。 像下面的示例會連續打出兩句相同的句子:
<?php $foo = 'Bob'; // Assign the value 'Bob' to $foo $bar = &$foo; // Reference $foo via $bar. $bar = "My name is $bar"; // Alter $bar... echo $foo; // $foo is altered too. echo $bar; ?> |
有一點很重要的是只有真正的變數才可以作為舊變數被參照。