摘要:在變量中存放的數(shù)據(jù),我們稱之為變量值。中的變量用一個(gè)美元符號(hào)后面跟變量名來(lái)表示。變量名是區(qū)分大小寫的。在中變量的命名規(guī)則通常是以字母或下劃線開(kāi)頭,由字母數(shù)字下劃線組成。變量名通常由聲明變量所代表意義的英文單詞組成。
什么是變量
變量通俗的來(lái)說(shuō)是一種容器。根據(jù)變量類型不同,容器的大小不一樣,自然能存放的數(shù)據(jù)大小也不相同。在變量中存放的數(shù)據(jù),我們稱之為變量值。
PHP 中的變量用一個(gè)美元符號(hào)后面跟變量名來(lái)表示。變量名是區(qū)分大小寫的。在PHP中變量的命名規(guī)則通常是以字母或下劃線開(kāi)頭,由字母、數(shù)字、下劃線組成。變量名通常由聲明變量所代表意義的英文單詞組成。單詞與單詞之間通過(guò)_分隔,或者第一個(gè)單詞首字母小寫,之后每個(gè)單詞首字母大寫。這種命名方式我們稱之為駝峰命名法。良好的命名規(guī)范有助于提高我們代碼的可讀性。
變量的初始化
變量的初始化是給變量設(shè)置一個(gè)默認(rèn)值(或者是需要的值),初始化的過(guò)程中PHP會(huì)給變量分配存儲(chǔ)空間以及將變量值所在存儲(chǔ)空間地址保存在變量中。
雖然在PHP中不需要初始化變量,但對(duì)變量進(jìn)行初始化是個(gè)好習(xí)慣。未初始化的變量具有其類型的默認(rèn)值
布爾類型的變量默認(rèn)值是 FALSE
整形和浮點(diǎn)型變量默認(rèn)值是零
字符串型變量(例如用于 echo 中)默認(rèn)值是空字符串
數(shù)組變量的默認(rèn)值是空數(shù)組
使用未初始化的變量會(huì)發(fā)出 E_NOTICE錯(cuò)誤,但是在向一個(gè)未初始化的數(shù)組附加單元時(shí)不會(huì)。
依賴未初始化的變量的默認(rèn)值在某些情況下會(huì)有問(wèn)題,比如在之后的編碼中我們需要經(jīng)常的將一個(gè)文件通過(guò)include包含到當(dāng)前文件,如果兩個(gè)文件中有相同的變量名,此時(shí)的變量值則不是我們需要的默認(rèn)值了。另外在PHP 5.4.0之前的版本中把 register_globals打開(kāi)是一個(gè)主要的安全隱患。在PHP 5.4.0之后該配置已被移除。
變量的賦值方式在PHP中有兩種傳值方式,分別為傳值賦值和引用賦值。
1.傳值賦值傳值賦值是PHP中默認(rèn)的傳值方式。那也就是說(shuō),當(dāng)將一個(gè)表達(dá)式的值賦予一個(gè)變量時(shí),整個(gè)原始表達(dá)式的值被賦值到目標(biāo)變量。這意味著,當(dāng)一個(gè)變量的值賦予另外一個(gè)變量時(shí),改變其中一個(gè)變量的值,將不會(huì)影響到另外一個(gè)變量。如:
2.引用賦值
引用賦值意味著新的變量簡(jiǎn)單的引用了原始的變量,改變了新的變量的值將影響到原始的變量的值,反之亦然。使用引用賦值,只需簡(jiǎn)單地將一個(gè) & 符號(hào)加到將要賦值的變量前(源變量)如:
&符在C語(yǔ)言中稱之為取地址符,變量保存了變量值在內(nèi)存中的存儲(chǔ)地址,通過(guò)取地址符可以將一個(gè)變量保存的變量值的地址賦值給另一個(gè)變量。兩個(gè)變量的值指向了同一個(gè)內(nèi)存地址,所以當(dāng)我們修改其中一個(gè)變量的值時(shí),另一個(gè)變量的值自然而然的隨之被改變。
有一點(diǎn)重要事項(xiàng)必須指出,那就是只有有名字的變量才可以引用賦值。
在(24*7)這個(gè)表達(dá)式中因?yàn)闆](méi)有保存在變量中,所以沒(méi)有明確的內(nèi)存地址,通過(guò)取地址符去獲取在內(nèi)存中存儲(chǔ)的地址是不可取的。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28438.html
摘要:執(zhí)行原理是一門應(yīng)用非常簡(jiǎn)單,開(kāi)發(fā)效率極高的一門語(yǔ)言,其弱類型的變量能省去程序員大量的定義變量類型轉(zhuǎn)換等的時(shí)間和精力。程序最終被翻譯為一組處理函數(shù)的順序執(zhí)行。只有減為時(shí)才會(huì)真正執(zhí)行銷毀操作。 PHP執(zhí)行原理 php是一門應(yīng)用非常簡(jiǎn)單,開(kāi)發(fā)效率極高的一門語(yǔ)言,其弱類型的變量能省去程序員大量的定義變量、類型轉(zhuǎn)換等的時(shí)間和精力。它是一種適用于web開(kāi)發(fā)的動(dòng)態(tài)語(yǔ)言。 1. php設(shè)計(jì)的原理和特點(diǎn)...
摘要:引用計(jì)數(shù)變量分離寫時(shí)拷貝我們一步步來(lái)理解語(yǔ)言特性是腳本語(yǔ)言,所謂腳本語(yǔ)言,就是說(shuō)并不是獨(dú)立運(yùn)行的,要運(yùn)行代碼需要解析器,用戶編寫的代碼最終都會(huì)被解析器解析執(zhí)行的執(zhí)行是通過(guò)引擎,是用編寫的用戶編寫的代碼最終都會(huì)被翻譯成的虛擬機(jī)的虛擬指令來(lái)執(zhí)行 zval、引用計(jì)數(shù)、變量分離、寫時(shí)拷貝我們一步步來(lái)理解1、php語(yǔ)言特性PHP是腳本語(yǔ)言,所謂腳本語(yǔ)言,就是說(shuō)PHP并不是獨(dú)立運(yùn)行的,要運(yùn)行PHP...
摘要:對(duì)于來(lái)說(shuō),變量有全局變量和局部變量之分那么,他們都是存儲(chǔ)到一個(gè)哈希表內(nèi)了么其實(shí)不是的,變量存儲(chǔ)也有作用域的概念。 上次跟大家講了垃圾回收機(jī)制后,有些小伙伴對(duì)底層原理比較感興趣,私信問(wèn)我了一些關(guān)于變量的相關(guān)知識(shí),既然大家對(duì)變量比較感興趣,那么這次我們來(lái)系統(tǒng)的講一下變量的底層原理 變量結(jié)構(gòu) 首先,我們還是先擺上我們的zval結(jié)構(gòu)體,即php所有變量都會(huì)以zval結(jié)構(gòu)體的形式實(shí)現(xiàn) struc...
摘要:注意和是不同的變量,處理它們的方式不同變量說(shuō)明默認(rèn)情況下包含了,和的數(shù)組。包含相同的信息,但它不是一個(gè)超全局變量。這些特殊的常量不區(qū)分大小寫,如下幾個(gè)的魔術(shù)常量名稱說(shuō)明文件中的當(dāng)前行號(hào)。 整理了下關(guān)于php的基礎(chǔ)知識(shí),參考了些資料,如下: 超全局變量 超全局變量 — 超全局變量是在全部作用域中始終可用的內(nèi)置變量: $GLOBALS $GLOBALS — 引用全局作用域中可用的全部變量 ...
摘要:總結(jié)垃圾回收機(jī)制以的引用計(jì)數(shù)機(jī)制為基礎(chǔ)以前只有該機(jī)制同時(shí)使用根緩沖區(qū)機(jī)制,當(dāng)發(fā)現(xiàn)有存在循環(huán)引用的時(shí),就會(huì)把其投入到根緩沖區(qū),當(dāng)根緩沖區(qū)達(dá)到配置文件中的指定數(shù)量后,就會(huì)進(jìn)行垃圾回收,以此解決循環(huán)引用導(dǎo)致的內(nèi)存泄漏問(wèn)題開(kāi)始引入該機(jī)制 php垃圾回收機(jī)制,對(duì)于PHPer來(lái)說(shuō)是一個(gè)不陌生但是又不是很熟悉的內(nèi)容。那么php是怎么實(shí)現(xiàn)對(duì)不需要的內(nèi)存進(jìn)行回收的呢? php變量的內(nèi)部存儲(chǔ)結(jié)構(gòu) 首先還是...
摘要:最后改為超文本預(yù)處理器,于年誕生。注釋單行注釋多行注釋你好單行注釋你也好單行注釋多行注釋大家都好變量由一個(gè)美元符號(hào)后面跟變量名來(lái)表示變量名區(qū)分大小寫。可變變量可變變量一個(gè)變量的變量名可以動(dòng)態(tài)設(shè)置和使用。 PHP簡(jiǎn)介 最初用于維護(hù)個(gè)人主頁(yè),簡(jiǎn)寫為:Personal HomePage。最后改為:Hypertext Preprocessor(超文本預(yù)處理器),于1994年誕生。 優(yōu)勢(shì) 性...
閱讀 3399·2021-11-24 09:38
閱讀 1395·2021-11-22 15:08
閱讀 1470·2021-09-29 09:35
閱讀 488·2021-09-02 15:11
閱讀 1312·2019-08-30 12:55
閱讀 395·2019-08-29 17:16
閱讀 499·2019-08-29 11:30
閱讀 426·2019-08-26 13:23