明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

PHP學(xué)習(xí)之PHP表達(dá)式

[摘要]PHP表達(dá)式   表達(dá)式是PHP最重要的組成元素。在PHP 3.0中,幾乎你所寫的任何東西都是表達(dá)式。表達(dá)式的最簡(jiǎn)單但精確的定義是"有一個(gè)值的任何東西"。    一個(gè)簡(jiǎn)單的例子是常量和變量。 當(dāng)你寫 "a = 5"時(shí), 你給 a 賦了值 '5'...
PHP表達(dá)式

  表達(dá)式是PHP最重要的組成元素。在PHP 3.0中,幾乎你所寫的任何東西都是表達(dá)式。表達(dá)式的最簡(jiǎn)單但精確的定義是"有一個(gè)值的任何東西"。    一個(gè)簡(jiǎn)單的例子是常量和變量。
當(dāng)你寫 "$a = 5"時(shí), 你給 $a 賦了值 '5' 。 (在這種情況下, '5' 是一個(gè)整形常量)。 在此,你是希望把 $a 賦值成 5。所以寫 $b = $a 時(shí),你希望的結(jié)果就是 $b = 5 。即 $a 是一個(gè)值為 5 的表達(dá)式。   復(fù)雜表達(dá)式的簡(jiǎn)單例子是函數(shù)。
比如說(shuō),考慮以下函數(shù):    function foo()     {      return 5;     }   
如果你認(rèn)為寫$c = foo()實(shí)際上和寫 $c = 5是一樣的,那么你是對(duì)的。函數(shù)是值為其返回值的表達(dá)式。因?yàn)閒oo() 返回5, 所以表達(dá)式 'foo()'的值是 5 。   
PHP的值當(dāng)然不限于整形,且通常都不是。PHP支持三類值的類型: 整形值,浮點(diǎn)值和字符串值。PHP 支持兩種混合類型(non-scalar): 數(shù)組和對(duì)象。這兩種類型的值可以賦給變量或從函數(shù)中返回。   
PHP 3是一種面向表達(dá)式的語(yǔ)言, 所以幾乎所有東西都是表達(dá)式。
考慮我們已經(jīng)討論的例子, '$a = 5'。很容易看出這里有兩個(gè)值,整形常量 '5'的值,和也被賦為 5 的變量 $a 的值。但是這里實(shí)際上還有一個(gè)附加的值,就是賦值語(yǔ)句本身的值。
賦值語(yǔ)句本身的值就是被賦給的值,本例中是 5. 事實(shí)上,它意味著不考慮 '$a = 5'要做什么,它是一個(gè)值為 5 的表達(dá)式。這樣,寫諸如 '$b = ($a = 5)'的語(yǔ)句,就象 '$a = 5; $b = 5;' (每條語(yǔ)句末尾有一個(gè)分號(hào))。因?yàn)橘x值的順序是從右向左的你也可以寫成 '$b = $a = 5'。   

   表達(dá)式計(jì)算方向的另一個(gè)好例子是先加、后加及先減、后減。PHP/FI和多數(shù)其他語(yǔ)言的用戶可能很熟悉 variable++ 和 variable--。這是自加和自減操作。在 PHP/FI 2 中,語(yǔ)句 '$a++' 沒有值(它不是表達(dá)式), 這樣你就既不能賦值給它也不能通過(guò)任何辦法使用它。PHP 3 把它們變成了和 C 中一樣的表達(dá)式從而增強(qiáng)了自加和自減運(yùn)算的能力。
和 C 中類似,PHP 3中也有兩種類型的自加----先加和后加。先加和后加的本質(zhì)都是變量自加,對(duì)于變量本身的作用是一樣的。不同點(diǎn)是自加表達(dá)式的值。形如 '++$variable'的先加, 計(jì)算變量自加后的值(PHP先做變量自加,再讀取它的值,也就叫做 '先加').形如'$variable++'的后加, 則先計(jì)算原始變量$variable的值,然后才進(jìn)行自加 (PHP在讀取變量的值后再做自加,因此叫做'后加').   
最常見的表達(dá)式是比較表達(dá)式。這種表達(dá)式計(jì)算結(jié)果是 0 或 1,分別意味著 FALSE 或是 TRUE。
PHP 支持 > (大于), >= (大于等于), == (等于), < (小于) 及 <= (小于等于)。這種表達(dá)式通常用在條件執(zhí)行里 , 例如 IF 語(yǔ)句。   
  在這里我們最后要討論的表達(dá)式是混合賦值表達(dá)式。你已經(jīng)知道如果要使 $a 加一,你可以簡(jiǎn)單的寫一句 '$a++' 或者 '++$a'。但是如果要增加的值比1大怎么辦呢,例如使它加 3 ? 你可以多寫幾次'$a++' ,但這 顯然不是一種高效或令人樂于接受的辦法。另外一個(gè)通常的辦法是寫 '$a = $a + 3'。先計(jì)算'$a + 3' 的值,在賦回到 $a, 這樣 $a 就加上 3 了。在PHP 3 中,你可以象在其他幾種語(yǔ)言(例如 C)一樣把它簡(jiǎn)寫,這樣更清晰、快潔易懂。 把當(dāng)前變量 $a 加 3 可以寫成 '$a += 3'。這句話的意思是 "取出 $a 的值, 把它加 3 , 在賦給 $a"。這除了使得語(yǔ)句簡(jiǎn)短、清晰,還使它執(zhí)行的更快。表達(dá)式 '$a += 3'的值,和一個(gè)嚴(yán)格的賦值語(yǔ)句一樣,是所賦的值。注意:不是 3, 而是 $a 加 3 的值(這才是賦給$a 的)。任何的雙操作符 可以被用于這種賦值操作模式,例如 '$a -= 5' (變量 $a 減去 5 ), '$b *= 7' ( 變量 $b 乘以 7),等等。   
   最后值得提到的是表達(dá)式的真值。很多時(shí)候(主要是在條件執(zhí)行和循環(huán)時(shí)),你并不關(guān)心表達(dá)式的特定值 , 而只是注意它代表TRUE 還是 FALSE (PHP 沒有專用的布爾類型)。PHP中使用類似perl的方法計(jì)算表達(dá)式的真值。任何非零的值為 TRUE,零為 FALSE 。請(qǐng)一定注意負(fù)零的值是非零值,并被視為 TRUE ! 空字符串可 字符串 "0" 為 FALSE; 所其他的字符串為 TRUE 。對(duì)于非數(shù)量值(數(shù)組和對(duì)象) - 如果它的值不含任何元素為 FALSE, 否則為 TRUE。