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