變量通俗的來講是一種容器。根據變量類型不一樣,容器的大小不同,天然能存放的數據大小也不相同。在變量中存放的數據,咱們稱之爲變量值。php
PHP 中的變量用一個美圓符號後面跟變量名來表示。變量名是區分大小寫的。在PHP中變量的命名規則一般是以字母或下劃線開頭,由字母、數字、下劃線組成。變量名一般由聲明變量所表明意義的英文單詞組成。單詞與單詞之間經過_
分隔,或者第一個單詞首字母小寫,以後每一個單詞首字母大寫。這種命名方式咱們稱之爲駝峯命名法。良好的命名規範有助於提升咱們代碼的可讀性。數組
<?php $name = '屋脊貓'; $_age = 1; $sex = '男'; echo "姓名:{$name},年齡:{$_age}, 性別:{$sex}"; $1sex = '男'; // 錯誤,不能以數字開頭 ?>
變量的初始化是給變量設置一個默認值(或者是須要的值),初始化的過程當中PHP會給變量分配存儲空間以及將變量值所在存儲空間地址保存在變量中。安全
<?php $a = 1; // 初始化一個整形變量 ?>
雖然在PHP中不須要初始化變量,但對變量進行初始化是個好習慣。未初始化的變量具備其類型的默認值編碼
FALSE
echo
中)默認值是空字符串使用未初始化的變量會發出 E_NOTICE
錯誤,可是在向一個未初始化的數組附加單元時不會。code
依賴未初始化的變量的默認值在某些狀況下會有問題,好比在以後的編碼中咱們須要常常的將一個文件經過include
包含到當前文件,若是兩個文件中有相同的變量名,此時的變量值則不是咱們須要的默認值了。另外在PHP 5.4.0以前的版本中把 register_globals
打開是一個主要的安全隱患。在PHP 5.4.0以後該配置已被移除。內存
在PHP中有兩種傳值方式,分別爲傳值賦值和引用賦值。字符串
傳值賦值是PHP中默認的傳值方式。那也就是說,當將一個表達式的值賦予一個變量時,整個原始表達式的值被賦值到目標變量。這意味着,當一個變量的值賦予另一個變量時,改變其中一個變量的值,將不會影響到另一個變量。如:容器
<?php $var1 = 1; $var2 = $var1; $var1 = 3; echo $var1; // 3 echo $var2; // 1 ?>
引用賦值意味着新的變量簡單的引用了原始的變量,改變了新的變量的值將影響到原始的變量的值,反之亦然。使用引用賦值,只需簡單地將一個 &
符號加到將要賦值的變量前(源變量)如:變量
<?php $oldVar = 1; $newVar = &$oldVar; $newVar = 2; echo $oldVar; // 2 echo $newVar; // 2 ?>
&
符在C語言中稱之爲取地址符,變量保存了變量值在內存中的存儲地址,經過取地址符能夠將一個變量保存的變量值的地址賦值給另外一個變量。兩個變量的值指向了同一個內存地址,因此當咱們修改其中一個變量的值時,另外一個變量的值天然而然的隨之被改變。配置
有一點重要事項必須指出,那就是隻有有名字的變量才能夠引用賦值。
<?php $foo = 25; $bar = &$foo; // 合法的賦值 $bar = &(24 * 7); // 非法; 引用沒有名字的表達式 ?>
在(24*7)
這個表達式中由於沒有保存在變量中,因此沒有明確的內存地址,經過取地址符去獲取在內存中存儲的地址是不可取的。