運算子與流程

2021-08-03 04:42:12 字數 2213 閱讀 6182

比較運算子

運算數 1 型別

運算數 2 型別

結果null

或string

string

null轉換為 "",進行數字或詞彙比較

bool

或null

任何其它型別

轉換為 bool

false<true

object

object

內建類可以定義自己的比較,不同類不能比較,相同類和陣列同樣方式比較屬性(php 4 中),php 5 有其自己的說明

string

,resource

或number

string

,resource

或number

將字串和資源轉換成數字,按普通數學比較

array

array

具有較少成員的陣列較小,如果運算數 1 中的鍵不存在於運算數 2 中則陣列無法比較,否則挨個值比較(見下例)

object

任何其它型別

object

總是更大

array

任何其它型別

array

總是更大

三元運算子

表示式 (expr1) ? (expr2) : (expr3) 在 expr1 求值為true時的值為expr2,在 expr1 求值為false時的值為 expr3。

自 php 5.3 起,可以省略三元運算子中間那部分。表示式 expr1 ?: expr3 在 expr1 求值為true時返回 expr1,否則返回 expr3。

錯誤控制運算子

php 支援乙個錯誤控制運算子:@。當將其放置在乙個 php 表示式之前,該表示式可能產生的任何錯誤資訊都被忽略掉。

如果用 set_error_handler()

設定了自定義的錯誤處理函式,仍然會被呼叫,但是此錯誤處理函式可以(並且也應該)呼叫error_reporting()

,而該函式在出錯語句前有 @ 時將返回 0。

如果啟用了track_errors特性,表示式所產生的任何錯誤資訊都被存放在變數 $php_errormsg

中。此變數在每次出錯時都會被覆蓋,所以如果想用它的話就要盡早檢查。

<?php

/* intentional file error */

$my_file = @file ('non_existent_file') or

die ("failed opening file: error was '$php_errormsg'");

// this works for any expression, not just functions:

$value = @$cache[$key];

// will not issue a notice if the index $key doesn't exist.

?>

note: @ 運算子只對表示式有效。對新手來說乙個簡單的規則就是:如果能從某處得到值,就能在它前面加上 @ 運算子。例如,可以把它放在變數,函式和include

呼叫,常量,等等之前。不能把它放在函式或類的定義之前,也不能用於條件結構例如if 和 foreach 等。

include

被包含檔案先按引數給出的路徑尋找,如果沒有給出目錄(只有檔名)時則按照 include_path 指定的目錄尋找。如果在include_path 下沒找到該檔案則 include 最後才在呼叫指令碼檔案所在的目錄和當前工作目錄下尋找。如果最後仍未找到檔案則include 結構會發出一條警告;這一點和 require

不同,後者會發出乙個致命錯誤。

當乙個檔案被包含時,其中所包含的**繼承了 include 所在行的變數範圍。從該處開始,呼叫檔案在該行處可用的任何變數在被呼叫的檔案中也都可用。不過所有在包含檔案中定義的函式和類都具有全域性作用域。

NOT運算子與 運算子

6.4.2 not運算子與 運算子 對於簡單的條件查詢,not運算子與 運算子的功能幾乎沒有什麼區別,那麼not運算子的優勢體現在 呢?答案是它可以與其他運算子組合使用,這一點是 運算子所不能實現的。在6.4.1節已經介紹了not運算子與in運算子組合使用的例子,下面給出乙個not運算子與betwe...

陣列運算子 錯誤控制運算子與流程控制

注意 php中陣列元素的順序與下標無關,而是與加入的順序有關 v1 array 1,2,3,4 v2 array 5,6,7,8,9 r1 v1 v2 則 r1的結果為 array 1,2,3,4,9 v1 array 1,2,3,4 v2 array 2,3,1,4 v3 array 1 2,2 ...

python 運算子與流程控制

算術運算 復合運算 關係運算 比較運算 邏輯運算 判斷是否在100 200之間 print a 100 and a 200 與上式等價 print 100 a 200 判斷是否是閏年 y int input 請輸入乙個年份 print y 4 0 and y 100 0 or y 400 0 成員運...