PHP中的表達式
表達式是PHP 最重要的基石。在 PHP 中,幾乎你所寫的任何東西都是一個表達式。簡單但卻最精確的定義一個表達式的方式就是“anything that has a value”。
最基本的表達式形式是常量和變量。當你鍵入“$a = 5”,即將值 '5' 分配給變量 $a。'5',很明顯,值為 5,換句話說 '5' 是一個值為5的表達式(既然如此,'5' 是一個整型常量)。
賦值之后,你所盼望的情況是 $a 的值為5,因而如果你寫下 $b = $a,期望的是它猶如 $b = 5 一樣。換句話說,$a 是一個值也為 5 的表達式。如果一切運行正確,那這正是將要發生的正確結果。
稍微復雜的表達式例子就是函數。例如,考慮下面的函數:
假定你已經熟悉了函數的概念(如果不是的話,請看一下函數的相關章節),那么鍵入 $c = foo() 從本質上來說就如寫下 $c = 5,而且你是正確的。 函數也是表達式,表達式的值即為它們的返回值。既然 foo() 返回5,表達式 ‘foo()’ 的值也是5。通常函數不會僅僅返回一個靜態值,而可能會計算一些東西。
當然,PHP 中的值常常并非是整型的。PHP 支持三種標量值類型:整型值,浮點值和字符串值(標量值不能拆分為更小的單元,比如:數組)。PHP 也支持兩種復合類型:數組和對象。這兩種類型具可以賦值給變量或者從函數返回。
到目前為止,PHP/FI 2 的用戶不應該感到任何的變化。然而,當許多其它語言為之努力的時候,PHP 在相同道路上促進了表達式的成長。PHP 是一種面向表達式的語言,從這一方面來講幾乎一切都是表達式。考慮剛才我們已經研究過的例子,“$a = 5”。可以輕松的看到這里有兩個相關的值,整型常量 5,而且變量 $a 的值也被更新為 5。但是事實是:這里只有一個相關的附加值,即被分配的值本身。賦值操作計算需分配的值,即 5。實際上,意味著“$a = 5”,不必管它是做什么的,是一個值為 5 的表達式。因而,一些像這樣的代碼“$b = ($a = 5)”和“$a =5; $b=5”(分號標志著語句的結束)。因為賦值操作的順序是由右到左的,你也可以這么寫“$b = $a =5”。
另外一個很好的面向表達式的例子就是前、后遞增和遞減。PHP/FI 2 和多數其它語言的用戶應該比較熟悉變量 ++ 和變量 -- 符號。即遞增和遞減操作符。在 PHP/FI 2 中,語句“$a++”沒有值(不是表達式),這樣的話你便不能為其賦值或者以任何其它方式來使用它。PHP 通過將其變為了表達式,類似 C 語言,增強了遞增/遞減的能力。在 PHP 和 C 語言 中,有兩種類型的遞增前遞增和后遞增,本質上來講,前遞增和后遞增均增加了變量的值,并且對于變量的影響是相同的。不同的是遞增表達式的值。前遞增,寫做 “++$variable”,求增加后的值(PHP 在讀取變量的值之前,增加變量的值,因而稱之為“前遞增”)。后遞增,寫做‘$variable++’,求變量未遞增之前的原始值(PHP 在讀取變量的值之后,增加變量的值,因而叫做‘后遞增’)。【譯者注:前遞增,++$a,則該表達式的值加 1;后遞增,$a++,則該表達式的值不變。】
一個常用到表達式類型是比較表達式。這些表達式求值 0 或者 1,即 FALSE 或者 TRUE(分別的)。PHP 支持 >(大于),>=(大于等于),==(等于),!=(不等于),<(小于),<= (小于等于)。這些表達式都是在條件判斷語句,比如,if 語句中最常用的。
推薦文章
2025-01-18
2024-11-28
2024-11-09
2024-10-25
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩定
產品高可用性高并發貼心
項目群及時溝通專業
產品經理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽堅持
10年專注高端品質開發