在之前的文章中我們介紹了使用PHP函數(shù)檢測(cè)變量數(shù)據(jù)類型的方法,有需要的可以點(diǎn)擊鏈接查看→《教你使用PHP函數(shù)來檢測(cè)變量的類型》。這次我們來聊聊變量賦值,介紹一下在PHP中怎么給變量傳值,一起來學(xué)習(xí)下。
首先我們需要了解一下變量,這樣才能更好的了解變量的賦值方式。
變量通俗的來說是一種容器,是臨時(shí)存儲(chǔ)值的容器,它可以儲(chǔ)存數(shù)字、文本、或者一些復(fù)雜的數(shù)據(jù)等;這些數(shù)據(jù),就是“變量值”。且根據(jù)變量類型不同,容器的大小不一樣,存放的數(shù)據(jù)大小也是不相同的。
因?yàn)镻HP是一種弱類型的語言,所以使用變量前不用提前聲明,在第一次賦值時(shí)會(huì)被自動(dòng)創(chuàng)建。PHP中的變量用一個(gè)美元符號(hào)“$
”后面跟變量名來表示(注:變量名是區(qū)分大小寫的)。
例:
<?php $name = '西門慶'; $_age = 25; $sex = '男'; echo "姓名:{$name},年齡:{$_age}, 性別:{$sex}"; ?>
PHP變量名并不是可以隨意定義的,它遵循一定的命名規(guī)則,通常是以字母(A~z)或下劃線(_)開頭,由字母、數(shù)字(0~9)、下劃線組成。
例如下面的變量聲明就是錯(cuò)誤的:
$1sex = '男'; // 錯(cuò)誤,不能以數(shù)字開頭
一般PHP變量在聲明時(shí),就進(jìn)行了賦值操作,下面我們就來了解一下PHP變量的賦值方式。
PHP中有兩種傳值方式,分別為傳值賦值和引用賦值。
1、傳值賦值
“傳值賦值”是PHP中默認(rèn)的傳值方式,可以像上文那樣使用“=
”運(yùn)算符直接將值賦給變量
<?php $a = 1; ?>
也可以將一個(gè)變量的值,賦予給另一個(gè)變量。我們看看下面這個(gè)例子:
<?php $a = 100; $b = $a; // 將$a的值復(fù)制一份,傳給$b echo '$a = '.$a; echo '<br> $b = '.$b; ?>
輸出結(jié)果:
$a = 100 $b = 100
需要注意的是:賦予變量值的方式,其實(shí)是將一個(gè)變量的值,“復(fù)制”一份,再傳給另一個(gè)變量。本質(zhì)上這兩個(gè)變量是相互獨(dú)立的,因此改變其中一個(gè)變量的值,將不會(huì)影響到另外一個(gè)變量??纯聪旅孢@個(gè)例子:
<?php $a = 100; $b = $a; // 將$a的值復(fù)制一份,傳給$b $a = 200; // 重新為 $a 賦值 echo '$a = '.$a; echo '<br> $b = '.$b; ?>
我們來看看輸出結(jié)果:
$a = 200 $b = 100
但有時(shí)我們就需要,改變其中一個(gè)變量的值,另外一個(gè)變量也跟著改變,這樣怎么辦?那就需要使用“引用賦值”了。
2、引用賦值
“引用賦值”簡(jiǎn)單來說就是:新的變量引用了原始的變量。它會(huì)將一個(gè)變量的內(nèi)存地址,“復(fù)制”一份,傳給另一個(gè)變量。
這也就意味著,兩個(gè)變量是有關(guān)聯(lián)的,改變了新的變量的值將影響到原始的變量的值,反之亦然。
“引用賦值”和“傳值賦值”差不多,只是多了一步:在需要在被引用的變量(源變量)前加上“&
”符號(hào)(C語言中稱之為取地址符)。
<?php $a = 100; $b = &$a; // 將$a的地址復(fù)制一份,傳給$b $a = 200; // 重新為 $a 賦值 echo '$a = '.$a; echo '<br> $b = '.$b; ?>
通過取地址符&,變量$a和變量$b的值指向了同一個(gè)內(nèi)存地址,當(dāng)我們修改其中一個(gè)變量的值時(shí),另一個(gè)變量的值自然而然的隨之被改變。我們來看看輸出結(jié)果:
$a = 200 $b = 200
注:只有有名字的變量才可以引用賦值。
<?php $foo = 25; $bar = &$foo; // 合法的賦值 $bar = &(24 * 7); // 非法; 引用沒有名字的表達(dá)式 ?>
在(24*7)
這個(gè)表達(dá)式中因?yàn)闆]有保存在變量中,所以沒有明確的內(nèi)存地址,通過取地址符去獲取在內(nèi)存中存儲(chǔ)的地址是不可取的。我們來看看輸出結(jié)果:
好了就說到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程
最后給大家推薦一個(gè)PHP數(shù)組的免費(fèi)視頻教程:從0開始進(jìn)入PHP的世界,快來學(xué)習(xí)吧!