變數通俗的來說是一種容器。根據變數型別不同,容器的大小不一樣,自然能存放的資料大小也不相同。在變數中存放的資料,我們稱之為變數值。
PHP 中的變數用一個美元符號後面跟變數名來表示。變數名是區分大小寫的。在PHP中變數的命名規則通常是以字母或下劃線開頭,由字母、數位、下劃線組成。變數名通常由宣告變數所代表意義的英文單詞組成。單詞與單詞之間通過_分隔,或者第一個單詞首字母小寫,之後每個單詞首字母大寫。這種命名方式我們稱之為駝峰命名法。良好的命名規範有助於提高我們程式碼的可讀性。
<?php $name = '屋脊貓'; $_age = 1; $sex = '男'; echo "姓名:{$name},年齡:{$_age}, 性別:{$sex}"; $1sex = '男'; // 錯誤,不能以數位開頭 ?>
變數的初始化
變數的初始化是給變數設定一個預設值(或者是需要的值),初始化的過程中PHP會給變數分配儲存空間以及將變數值所在儲存空間地址儲存在變數中。
<?php $a = 1; // 初始化一個整形變數 ?>
雖然在PHP中不需要初始化變數,但對變數進行初始化是個好習慣。未初始化的變數具有其型別的預設值
● 布林型別的變數預設值是 FALSE
● 整形和浮點型變數預設值是零
● 字串型變數(例如用於 echo 中)預設值是空字串
● 陣列變數的預設值是空陣列
使用未初始化的變數會發出 E_NOTICE錯誤,但是在向一個未初始化的陣列附加單元時不會。
依賴未初始化的變數的預設值在某些情況下會有問題,比如在之後的編碼中我們需要經常的將一個檔案通過include包含到當前檔案,如果兩個檔案中有相同的變數名,此時的變數值則不是我們需要的預設值了。另外在PHP 5.4.0之前的版本中把 register_globals開啟是一個主要的安全隱患。在PHP 5.4.0之後該設定已被移除。
變數的賦值方式
在PHP中有兩種傳值方式,分別為傳值賦值和參照賦值。
1.傳值賦值
傳值賦值是PHP中預設的傳值方式。那也就是說,當將一個表示式的值賦予一個變數時,整個原始表示式的值被賦值到目標變數。這意味著,當一個變數的值賦予另外一個變數時,改變其中一個變數的值,將不會影響到另外一個變數。如:
<?php $var1 = 1; $var2 = $var1; $var1 = 3; echo $var1; // 3 echo $var2; // 1 ?>
2.參照賦值
參照賦值意味著新的變數簡單的參照了原始的變數,改變了新的變數的值將影響到原始的變數的值,反之亦然。使用參照賦值,只需簡單地將一個 & 符號加到將要賦值的變數前(源變數)如:
<?php $oldVar = 1; $newVar = &$oldVar; $newVar = 2; echo $oldVar; // 2 echo $newVar; // 2 ?>
&符在C語言中稱之為取地址符,變數儲存了變數值在記憶體中的儲存地址,通過取地址符可以將一個變數儲存的變數值的地址賦值給另一個變數。兩個變數的值指向了同一個記憶體地址,所以當我們修改其中一個變數的值時,另一個變數的值自然而然的隨之被改變。
有一點重要事項必須指出,那就是只有有名字的變數才可以參照賦值。
<?php $foo = 25; $bar = &$foo; // 合法的賦值 $bar = &(24 * 7); // 非法; 參照沒有名字的表示式 ?>
在(24*7)這個表示式中因為沒有儲存在變數中,所以沒有明確的記憶體地址,通過取地址符去獲取在記憶體中儲存的地址是不可取的。
以上就是PHP變數的初始化以及賦值方式介紹的詳細內容,更多請關注TW511.COM其它相關文章!