運算子 PHP手冊筆記

2021-09-22 20:41:42 字數 3115 閱讀 7618

原文:

運算子 - php手冊筆記

每種程式語言都有運算子,運算子要學會靈活使用。

運算子擁有不同的優先順序和結合方向。

<?php 

var_dump(1 <= 1 == 1); // true

var_dump(true ? 0 : true ? 1 : 2); // 2

$a = 1;

var_dump(++$a + $a++); // may print 4 or 5

在需要的時候使用括號,可以增強**的可讀性。

取模運算子的結果和被除數的符號相同。

賦值運算子將原變數的值拷貝到新變數中,有個例外就是碰到物件時,是以引用賦值的,除非明確使用clone關鍵字來拷貝。

new運算子自動返回乙個引用。

位移有一下幾個規律:

這一節的重點就是把手冊重點的幾個示例程式看懂吧。示例中字串的xor運算比較難理解,這個以後再看。還有整數的位移,感覺理解就好吧。

普通等號==只需型別轉換後兩值相等就返回真。

如果比較乙個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換為數值並且比較按照數值來進行。

<?php 

var_dump(0 == "a"); // true

var_dump("1" == "01"); // true

var_dump("10" == "1e1"); // true

自php 5.3起,可以省略三元運算子中間那部分。表示式expr1 ?: expr3在expr1真時返回expr1,否則返回expr3。三元運算子是從左往右計算的。

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

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

php支援乙個執行運算子:反引號,就是鍵盤左上角那個。效果與函式shell_exec()相同。

<?php 

$output = `systeminfo`;

$outip = shell_exec('ipconfig');

echo "$outip

";

echo "

$output
";

反引號運算子在啟用了安全模式或者關閉了shell_exec()時是無效的。

注意!反引號不能在雙引號字串中使用。

遞增/遞減運算子不影響布林值。

遞減null值也沒有效果,但是遞增null的結果是1。

在處理字元變數的算術運算時,php沿襲了perl的習慣,而非c的。例如,在perl中$a = 'z'; $a++;將把$a變成'aa'。

注意!字元變數只能遞增,不能遞減,並且只支援純字母(a-z和a-z)。遞增/遞減其他字元字元變數則無效,原字串沒有變化。

<?php 

$z = 'z';

$z = 'z';

var_dump(++$z); // 'aa'

var_dump(++$z); // 'aa'

||or的優先順序高。&&and的優先順序高。

第乙個是連線運算子.,第二個是連線賦值運算子.=

聯合:$a + $b。把右邊的陣列元素附加到左邊的陣列後面,兩個陣列中都有的鍵名,則只用左邊陣列中的,有變動額被忽略。

相等:$a == $b。具有相同的鍵值對。

全等:$a === $b。具有相同的鍵值對,並且順序和型別都相同。

不等:$a != $b$a <> $b

不全等:$a !== $b

陣列中的單元如果具有相同的鍵名和值則比較時相等,不要在意順序和型別。

<?php 

var_dump($a);

var_dump($b);

var_dump($a == $b);

var_dump($a === $b);

輸出結果如下所示。

array (size=2)

1 => string 'banana' (length=6)

array (size=2)

1 => string 'banana' (length=6)

boolean true

boolean false

php中有乙個型別運算子instanceof,用於確定乙個php變數是否屬於某一類的例項。

<?php 

class myparent {}

class myclass extends myparent {}

class notmyclass {}

inte***ce myinte***ce {}

class inclass implements myinte***ce {}

$a = new myclass;

var_dump($a instanceof myclass); // true

var_dump($a instanceof notmyclass); // false

var_dump($a instanceof myparent); // true

$b = new inclass;

var_dump($b instanceof myinte***ce); // true

$c = 'inclass';

var_dump($b instanceof $c); // true

var_dump($c instanceof stdclass); // false

注意,instanceof不允許用來檢測常量。

(全文完)

PHP筆記 運算子篇

簡介 php運算子學習筆記 1.基本規則 如果運算子優先順序相同,則由運算子的結合方向決定如何運算。沒有結合方向的同優先順序運算子不能連在一起使用。即使在沒有必要的情況下,最好也使用括號明確運算的順序。具體運算子的優先順序參照 2.結合方向的理解 3.取模 運算中的注意點 在進行取模運算前,運算的數...

php學習筆記 運算子

一 含義 加減乘除,或比較大小,或判斷真假 二 按參與運算的資料個數分類 單目運算子 雙目運算子 三元運算子 expr1 expr2 expr3 三 按功能分類 賦值 算術 對整數數字進行 取餘操作 如果不是整數,會先自動轉換為整數之後再進行取餘。轉換為整數的做法是,直接去掉小數部分 v1 10 4...

php運算子取整 PHP 運算子

數學計算 1.使用 abs 函式設定數值的絕對值。輸出 5 echo abs 5 2.使用 ceil 函式進製取整。輸出 6 echo ceil 5.8 echo ceil 5.1 3.使用 floor 函式截斷取整。輸出 5 echo floor 5.8 echo floor 5.1 4.使用 r...