php變量賦值的方法有哪些

這篇文章主要介紹“php變量賦值的方法有哪些”,在日常操作中,相信很多人在php變量賦值的方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php變量賦值的方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了簡陽免費建站歡迎大家使用!

php變量賦值有三種:1、傳值賦值,將一個表達式的值賦予一個變量,語法例如“$a=表達式”;2、引用賦值,將另一個變量和當(dāng)前的變量指向同一個地址,語法為“$a=&$b”;3、計數(shù)賦值,PHP和JavaScript中的對象默認傳值方式都是采用計數(shù)賦值的。

本文操作環(huán)境:Windows10系統(tǒng)、PHP8.1版、Dell G3電腦

php變量賦值

傳值賦值:

php變量其實就是一個地址的別名而已,如同$a就是一個內(nèi)存中的地址的別名,比如是0x000011,$b就是另一個地址,$a = $b就是把0x000011地址內(nèi)存里的數(shù)據(jù)取出來放到$b所指向的地址中,當(dāng)unset一個變量以后,就會把這個變量名和地址之間的聯(lián)系斷掉,此時操作系統(tǒng)就會執(zhí)行垃圾回收,把這個地址的數(shù)據(jù)清理掉。

引用賦值:

php的引用賦值就是把另一個變量和當(dāng)前的變量指向同一個地址,當(dāng)修改兩個變量中的任何一個數(shù)值的時候都會造成兩個數(shù)據(jù)的變化。

計數(shù)賦值:

和Javascript一樣,對象都是采用計數(shù)賦值的,當(dāng)$a = new object()以后,就會在棧上開一個變量$a,此時的$a的值是一個地址,指向堆上的一塊內(nèi)存,這塊內(nèi)存上邊是這個對象的一個實例,當(dāng)$b = $a以后就會使得$b中的值也是堆得內(nèi)存的地址。此時如果你unset掉$a以后,只是把棧上的$a清理掉而已,堆上的內(nèi)存依然存在,只有你把$b也unset掉,才會使得$a和$b都沒辦法指向到這個對象,此時這個對象就沒有辦法得到,在c語言里這個叫做內(nèi)存泄露,在Java和C#里都有自動垃圾回收機制,這個泄露的內(nèi)存都會被自動回收,php也是一樣,也會在沒有變量指向這個堆上的內(nèi)存以后就會被自動回收掉。

1、傳值賦值,例如$a=1,$b=$a等;

2、引用賦值,例如$a=&$b,即$a和$b在都指向了內(nèi)存中的同一個存儲變量值得地址;

3、引用計數(shù)傳值,在php和js中的對象都是默認的傳值方式都是引用計數(shù)傳值,例子如下:

<?php
class Dog{
    public $name="小花";
    public $leg=4;
}
$a=new Dog;//此時,$a指向了內(nèi)存中的一個地址(假設(shè)0XFFAD[1]),該地址又指向最終對象的值
$b=$a;//此時,$b和$a都指向了內(nèi)存中的另一個地址(0XFFAD[2]),該地址又指向最終對象的值
var_dump($b->leg);//結(jié)果是int 4
$b=999;
var_dump($b);//結(jié)果是int 999;
var_dump($a);//此時的結(jié)果不是int 999,而是object(Dog)[1]

知識擴展:

這三種賦值方式分別在什么場合下出現(xiàn)呢?

傳值賦值一般在普通的原子變量以及數(shù)組時候就是傳值賦值,引用賦值在你加上&作用符的時候就會生效,計數(shù)賦值在php中在資源文件和對象中存在。

什么是變量

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

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

<?php
    $name = '屋脊貓';
    $_age = 1;
    $sex = '男';       
    echo "姓名:{$name},年齡:{$_age}, 性別:{$sex}";
    $1sex = '男';  // 錯誤,不能以數(shù)字開頭
?>

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

到此,關(guān)于“php變量賦值的方法有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

新聞名稱:php變量賦值的方法有哪些
文章出自:http://muchs.cn/article2/ghhpoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、微信公眾號、營銷型網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計公司、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)