x=5 y=6 z=x+y
在代數(shù)中我們使用字母(比如 x)來保存值(比如 5)。
從上面的表達(dá)式 z=x+y,我們能夠計(jì)算出 z 的值是 11。
在 PHP 中,這三個(gè)字母被稱為變量。
注釋:請(qǐng)把變量視為存儲(chǔ)數(shù)據(jù)的容器。
正如代數(shù),PHP 變量可用于保存值(x=5)和表達(dá)式(z=x+y)。
變量的名稱可以很短(比如 x 和 y),也可以取更具描述性的名稱(比如 carname、total_volume)。
注釋:PHP 變量名稱對(duì)大小寫敏感!
PHP 沒有創(chuàng)建變量的命令。
變量會(huì)在首次為其賦值時(shí)被創(chuàng)建:
<?php $txt="Hello world!"; $x=5; $y=10.5; ?>
以上語句執(zhí)行后,變量 txt 會(huì)保存值 Hello world!,變量 x 會(huì)保存值 5,變量 y 會(huì)保存值 10.5。
注釋:如果您為變量賦的值是文本,請(qǐng)用引號(hào)包圍該值。
在上面的例子中,請(qǐng)注意我們不必告知 PHP 變量的數(shù)據(jù)類型。
PHP 根據(jù)它的值,自動(dòng)把變量轉(zhuǎn)換為正確的數(shù)據(jù)類型。
在諸如 C 和 C++ 以及 Java 之類的語言中,程序員必須在使用變量之前聲明它的名稱和類型。
在 PHP 中,可以在腳本的任意位置對(duì)變量進(jìn)行聲明。
變量的作用域指的是變量能夠被引用/使用的那部分腳本。
PHP 有三種不同的變量作用域:
函數(shù)之外聲明的變量擁有 Global 作用域,只能在函數(shù)以外進(jìn)行訪問。
函數(shù)內(nèi)部聲明的變量擁有 LOCAL 作用域,只能在函數(shù)內(nèi)部進(jìn)行訪問。
下面的例子測(cè)試了帶有局部和全局作用域的變量:
<?php $x=5; // 全局作用域 function myTest() { $y=10; // 局部作用域 echo "<p>測(cè)試函數(shù)內(nèi)部的變量:</p>"; echo "變量 x 是:$x"; echo "<br>"; echo "變量 y 是:$y"; } myTest(); echo "<p>測(cè)試函數(shù)之外的變量:</p>"; echo "變量 x 是:$x"; echo "<br>"; echo "變量 y 是:$y"; ?>
在上例中,有兩個(gè)變量 $x 和 $y,以及一個(gè)函數(shù) myTest()。$x 是全局變量,因?yàn)樗窃诤瘮?shù)之外聲明的,而 $y 是局部變量,因?yàn)樗窃诤瘮?shù)內(nèi)聲明的。
如果我們?cè)?myTest() 函數(shù)內(nèi)部輸出兩個(gè)變量的值,$y 會(huì)輸出在本地聲明的值,但是無法 $x 的值,因?yàn)樗诤瘮?shù)之外創(chuàng)建。
然后,如果在 myTest() 函數(shù)之外輸出兩個(gè)變量的值,那么會(huì)輸出 $x 的值,但是不會(huì)輸出 $y 的值,因?yàn)樗蔷植孔兞?,并且?myTest() 內(nèi)部創(chuàng)建。
注釋:您可以在不同的函數(shù)中創(chuàng)建名稱相同的局部變量,因?yàn)榫植孔兞恐荒鼙辉谄渲袆?chuàng)建它的函數(shù)識(shí)別。
global 關(guān)鍵詞用于訪問函數(shù)內(nèi)的全局變量。
要做到這一點(diǎn),請(qǐng)?jiān)冢ê瘮?shù)內(nèi)部)變量前面使用 global 關(guān)鍵詞:
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 輸出 15
?>
PHP 同時(shí)在名為 $GLOBALS[index] 的數(shù)組中存儲(chǔ)了所有的全局變量。下標(biāo)存有變量名。這個(gè)數(shù)組在函數(shù)內(nèi)也可以訪問,并能夠用于直接更新全局變量。
上面的例子可以這樣重寫:
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 輸出 15
?>
通常,當(dāng)函數(shù)完成/執(zhí)行后,會(huì)刪除所有變量。不過,有時(shí)我需要不刪除某個(gè)局部變量。實(shí)現(xiàn)這一點(diǎn)需要更進(jìn)一步的工作。
要完成這一點(diǎn),請(qǐng)?jiān)谀状温暶髯兞繒r(shí)使用 static 關(guān)鍵詞:
<?php function myTest() { static $x=0; echo $x; $x++; } myTest(); myTest(); myTest(); ?>
然后,每當(dāng)函數(shù)被調(diào)用時(shí),這個(gè)變量所存儲(chǔ)的信息都是函數(shù)最后一次被調(diào)用時(shí)所包含的信息。
注釋:該變量仍然是函數(shù)的局部變量。
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇
Powered by 365建站網(wǎng) RSS地圖 HTML地圖
copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)