PHP怎么输入表达式,PHP: 表达式 - Manual
章 14. 表達(dá)式
表達(dá)式是 PHP 最重要的基石。在 PHP
中,幾乎你所寫的任何東西都是一個(gè)表達(dá)式。簡單但卻最精確的定義一個(gè)表達(dá)式的方式就是“anything that has a value”。
最基本的表達(dá)式形式是常量和變量。當(dāng)你鍵入“$a = 5”,即將值 '5' 分配給變量
$a。'5',很明顯,值為 5,換句話說 '5' 是一個(gè)值為5的表達(dá)式(既然如此,'5' 是一個(gè)整型常量)。
賦值之后,你所盼望的情況是 $a 的值為5,因而如果你寫下
$b = $a,期望的是它猶如 $b = 5 一樣。換句話說,$a 是一個(gè)值也為 5
的表達(dá)式。如果一切運(yùn)行正確,那這正是將要發(fā)生的正確結(jié)果。
稍微復(fù)雜的表達(dá)式例子就是函數(shù)。例如,考慮下面的函數(shù):
{
return5;
}?>
假定你已經(jīng)熟悉了函數(shù)的概念(如果不是的話,請(qǐng)看一下函數(shù)的相關(guān)章節(jié)),那么鍵入
$c = foo() 從本質(zhì)上來說就如寫下
$c = 5,而且你是正確的。 函數(shù)也是表達(dá)式,表達(dá)式的值即為它們的返回值。既然
foo() 返回5,表達(dá)式 ‘foo()’ 的值也是5。通常函數(shù)不會(huì)僅僅返回一個(gè)靜態(tài)值,而可能會(huì)計(jì)算一些東西。
當(dāng)然,PHP 中的值常常并非是整型的。PHP
支持三種標(biāo)量值類型:整型值,浮點(diǎn)值和字符串值(標(biāo)量值不能拆分為更小的單元,比如:數(shù)組)。PHP
也支持兩種復(fù)合類型:數(shù)組和對(duì)象。這兩種類型具可以賦值給變量或者從函數(shù)返回。
到目前為止,PHP/FI 2 的用戶不應(yīng)該感到任何的變化。然而,當(dāng)許多其它語言為之努力的時(shí)候,PHP
在相同道路上促進(jìn)了表達(dá)式的成長。PHP
是一種面向表達(dá)式的語言,從這一方面來講幾乎一切都是表達(dá)式。考慮剛才我們已經(jīng)研究過的例子,“$a =
5”。可以輕松的看到這里有兩個(gè)相關(guān)的值,整型常量 5,而且變量 $a
的值也被更新為 5。但是事實(shí)是:這里只有一個(gè)相關(guān)的附加值,即被分配的值本身。賦值操作計(jì)算需分配的值,即
5。實(shí)際上,意味著“$a = 5”,不必管它是做什么的,是一個(gè)值為 5
的表達(dá)式。因而,一些像這樣的代碼“$b = ($a = 5)”和“$a =5;
$b=5”(分號(hào)標(biāo)志著語句的結(jié)束)。因?yàn)橘x值操作的順序是由右到左的,你也可以這么寫“$b = $a =5”。
另外一個(gè)很好的面向表達(dá)式的例子就是前、后遞增和遞減。PHP/FI 2
和多數(shù)其它語言的用戶應(yīng)該比較熟悉變量 ++ 和變量 -- 符號(hào)。即遞增和遞減操作符。在
PHP/FI 2 中,語句“$a++”沒有值(不是表達(dá)式),這樣的話你便不能為其賦值或者以任何其它方式來使用它。PHP
通過將其變?yōu)榱吮磉_(dá)式,類似 C 語言,增強(qiáng)了遞增/遞減的能力。在
PHP 和 C 語言 中,有兩種類型的遞增前遞增和后遞增,本質(zhì)上來講,前遞增和后遞增均增加了變量的值,并且對(duì)于變量的影響是相同的。不同的是遞增表達(dá)式的值。前遞增,寫做“++$variable”,求增加后的值(PHP
在讀取變量的值之前,增加變量的值,因而稱之為“前遞增”)。后遞增,寫做‘$variable++’,求變量未遞增之前的原始值(PHP
在讀取變量的值之后,增加變量的值,因而叫做‘后遞增’)。【譯者注:前遞增,++$a,則該表達(dá)式的值加
1;后遞增,$a++,則該表達(dá)式的值不變。】
一個(gè)常用到表達(dá)式類型是比較表達(dá)式。這些表達(dá)式求值 0 或者
1,即 FALSE 或者 TRUE(分別的)。PHP
支持 >(大于),>=(大于等于),==(等于),!=(不等于),
語句中最常用的。
這里,我們將要研究的最后一個(gè)例子是組合的賦值操作符表達(dá)式。你已經(jīng)知道如果想要為變量
$a 加1,可以簡單的寫‘$a++’或者‘++$a’。但是如果你想為變量增加大于
1 的值,比如 3,該怎么做?你可以多次寫‘$a++’,但這樣明顯不是一種高效舒適的方法,一個(gè)更加通用的做法是‘$a
= $a + 3’。‘$a + 3’ 計(jì)算 $a 加上 3 的值,并且得到的值重新賦予變量
$a,于是 $a 的值增加了3。在 PHP 及其它幾種類似 C
的語言中,你可以以一種更加簡短的形式完成上述功能,因而也更加清楚快捷。為
$a 的當(dāng)前值加 3,可以這樣寫:$a += 3。這里的意思是“取變量 $a 的值,加
3,得到的結(jié)果再次分配給變量 $a”。除了更簡略和清楚外,也可以更快的運(yùn)行。‘$a +=
3’的值,如同一個(gè)正常賦值操作的值,是賦值后的值。注意它不是 3,而是
$a 加上3的組合值(即已經(jīng)分配給 $a 的值)【譯者注:這里表達(dá)式‘$a += 3’的值是什么呢?不是
3,也不是 $a 的原始值,而是完成 +3 操作后變量 $a
的值】。 任何兩位操作符都可以使用在復(fù)制操作符模式,例如‘$a -= 5’(從變量
$a 的值中減去 5),‘$b *= 7’ (變量 $b 乘以 7),等等。
有一些表達(dá)式,如果你沒有在別的語言中看到過的話,可能認(rèn)為它們是多余的,如三重操作符:
$first ? $second : $third
如果第一個(gè)子表達(dá)式的值是 TRUE(非零),那么計(jì)算第二個(gè)子表達(dá)式的值,其值即為整個(gè)表達(dá)式的值。否則,將是第三個(gè)子表達(dá)式的值。
下面的例子一般來說應(yīng)該可以稍微幫你理解前、后遞增和表達(dá)式:
{
return$i*2;
}$b=$a=5;/* assign the value five into the variable $a and $b */$c=$a++;/* post-increment, assign original value of $a
(5) to $c */$e=$d= ++$b;/* pre-increment, assign the incremented value of
$b (6) to $d and $e */
/* at this point, both $d and $e are equal to 6 */$f=double($d++);/* assign twice the value of $d before
the increment, 2*6 = 12 to $f */$g=double(++$e);/* assign twice the value of $e after
the increment, 2*7 = 14 to $g */$h=$g+=10;/* first, $g is incremented by 10 and ends with the
value of 24. the value of the assignment (24) is
then assigned into $h, and $h ends with the value
of 24 as well. */?>
在本章的開始,我們說過我們將會(huì)描述多種語句類型,并且如同許諾的那樣,表達(dá)式可以是語句。盡管如此,不是每個(gè)表達(dá)式都是一個(gè)語句。而這樣的話,一個(gè)語句,它的形式是
'expr' ';',一個(gè)表達(dá)式有一個(gè)分號(hào)結(jié)尾。在‘$b=$a=5;’,$a = 5
是一個(gè)有效的表達(dá)式,但是它卻不是一個(gè)語句。‘$b=$a=5;’ 卻是一個(gè)有效的語句。
最后一件值得提起的事情就是表達(dá)式的真實(shí)值。在許多事件中,大體上主要是在條件執(zhí)行和循環(huán)中,不要專注于表達(dá)式中明確的值,反而要注意表達(dá)式的值是否是
TRUE 或者 FALSE。常量 TRUE 和 FALSE (大小寫無關(guān))是兩種可能的
Boolean 值。如果有必要,一個(gè)表達(dá)式將自動(dòng)轉(zhuǎn)換為 Boolean。參見類型強(qiáng)制轉(zhuǎn)換一節(jié)。
PHP 提供了一套完整強(qiáng)大的表達(dá)式,而為它提供完整的文件資料已經(jīng)超出了本手冊(cè)的范圍。上面的例子應(yīng)該為你提供了一個(gè)好的關(guān)于什么是表達(dá)式和怎樣構(gòu)建一個(gè)有用的表達(dá)式的概念。在本手冊(cè)的其余部分,我們將始終使用
expr來表示一個(gè)有效的 PHP 表達(dá)式。
總結(jié)
以上是生活随笔為你收集整理的PHP怎么输入表达式,PHP: 表达式 - Manual的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苏f是哪里的车 揭秘苏f的来源和制造厂家
- 下一篇: 二手高尔夫2016年GTI和18年豪华版