您好,登錄后才能下訂單哦!
PHP如何對變量進行初始化和初始化?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
什么是變量
變量通俗的來說是一種容器。根據變量類型不同,容器的大小不一樣,自然能存放的數據大小也不相同。在變量中存放的數據,我們稱之為變量值。
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如何對變量進行初始化和初始化問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。