PHP變量的初始化以及賦值方式介紹


什么是變量

 

變量通俗的來說是一種容器。根據變量類型不同,容器的大小不一樣,自然能存放的數據大小也不相同。在變量中存放的數據,我們稱之為變量值。

PHP 中的變量用一個美元符號后面跟變量名來表示。變量名是區分大小寫的。在PHP中變量的命名規則通常是以字母或下划線開頭,由字母、數字、下划線組成。變量名通常由聲明變量所代表意義的英文單詞組成。單詞與單詞之間通過_分隔,或者第一個單詞首字母小寫,之后每個單詞首字母大寫。這種命名方式我們稱之為駝峰命名法。良好的命名規范有助於提高我們代碼的可讀性。

1

2

3

4

5

6

7

<?php

    $name = '屋脊貓';

    $_age = 1;

    $sex = '男';       

    echo "姓名:{$name},年齡:{$_age}, 性別:{$sex}";

    $1sex = '男'// 錯誤,不能以數字開頭

?>

變量的初始化

變量的初始化是給變量設置一個默認值(或者是需要的值),初始化的過程中PHP會給變量分配存儲空間以及將變量值所在存儲空間地址保存在變量中。

1

2

3

<?php

    $a = 1; // 初始化一個整形變量

?>

雖然在PHP中不需要初始化變量,但對變量進行初始化是個好習慣。未初始化的變量具有其類型的默認值

● 布爾類型的變量默認值是 FALSE

● 整形和浮點型變量默認值是零

● 字符串型變量(例如用於 echo 中)默認值是空字符串

● 數組變量的默認值是空數組

使用未初始化的變量會發出 E_NOTICE錯誤,但是在向一個未初始化的數組附加單元時不會。

依賴未初始化的變量的默認值在某些情況下會有問題,比如在之后的編碼中我們需要經常的將一個文件通過include包含到當前文件,如果兩個文件中有相同的變量名,此時的變量值則不是我們需要的默認值了。另外在PHP 5.4.0之前的版本中把 register_globals打開是一個主要的安全隱患。在PHP 5.4.0之后該配置已被移除。

變量的賦值方式

在PHP中有兩種傳值方式,分別為傳值賦值和引用賦值。

1.傳值賦值

傳值賦值是PHP中默認的傳值方式。那也就是說,當將一個表達式的值賦予一個變量時,整個原始表達式的值被賦值到目標變量。這意味着,當一個變量的值賦予另外一個變量時,改變其中一個變量的值,將不會影響到另外一個變量。如:

1

2

3

4

5

6

7

<?php

    $var1 = 1;

    $var2 = $var1;

    $var1 = 3;

    echo $var1;     // 3

    echo $var2;     // 1

?>

2.引用賦值

引用賦值意味着新的變量簡單的引用了原始的變量,改變了新的變量的值將影響到原始的變量的值,反之亦然。使用引用賦值,只需簡單地將一個 & 符號加到將要賦值的變量前(源變量)如:

1

2

3

4

5

6

7

<?php

    $oldVar = 1;

    $newVar = &$oldVar;

    $newVar = 2;

    echo $oldVar;   // 2

    echo $newVar;   // 2

?>

&符在C語言中稱之為取地址符,變量保存了變量值在內存中的存儲地址,通過取地址符可以將一個變量保存的變量值的地址賦值給另一個變量。兩個變量的值指向了同一個內存地址,所以當我們修改其中一個變量的值時,另一個變量的值自然而然的隨之被改變。

有一點重要事項必須指出,那就是只有有名字的變量才可以引用賦值。

1

2

3

4

5

<?php

    $foo = 25;

    $bar = &$foo;      // 合法的賦值

    $bar = &(24 * 7);  // 非法; 引用沒有名字的表達式

?>

在(24*7)這個表達式中因為沒有保存在變量中,所以沒有明確的內存地址,通過取地址符去獲取在內存中存儲的地址是不可取的。

 

 能掌握以上技術這些人必然具備在技術上有獨當一面的能力,從一個 Coder 逐步走向 CTO 或是 架構師。為了大家能夠順利進階高級、架構師,我特地為大家准備了一套精品PHP架構師教程,適合1-5年內PHP開發人員,順利突破 25K+ 的薪資。

 

 

 

 

找管理領取進階學習路線和視頻文檔資料即可

點此鏈接申請加入Swoole官方群:正在跳轉

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM