PHP筆記 運算子篇

2021-08-21 18:53:39 字數 2690 閱讀 3092

簡介:php運算子學習筆記

1.基本規則

如果運算子優先順序相同,則由運算子的結合方向決定如何運算。沒有結合方向的同優先順序運算子不能連在一起使用。即使在沒有必要的情況下,最好也使用括號明確運算的順序。

具體運算子的優先順序參照

2.結合方向的理解

3.取模(%)運算中的注意點

在進行取模運算前,運算的數都會被去除小數點後的數值,變為整數。

取模運算結果的正負號與被除數的正負號相同。

4.類似「$a += 3;」這樣的加法運算表示式,字串也有這樣的表示式「.=」

$b = "hello ";

$b .="world"; //輸出結果為"hello world",其等效為 $b = $b . "world";

5.位移操作在php中是數學操作,任何被移出的位都將被丟棄。左移時右側將用0填充,意味著符號位不被保留;右移時左側用符號位填充,意味著符號位可以得到保留。

6.沒見過的幾個比較運算子

太空船運算子(組合比較符):「<=>」,例如「$a <=> $b;」,當$a小於\等於\大於$b時返回乙個小於\等於\大於0的整型數。

null合併操作符:「??」,例如「$a ?? $b ?? $c;」,返回從左到右的第乙個不為null的運算元;若所有運算元為null,則返回null。

7.三元運算子的乙個使用例(來自

<?php

// example usage for: ternary operator

$action = (empty($_post['action'])) ? 'default' : $_post['action'];

// the above is identical to this if/else statement

if (empty($_post['action'])) else

?>

三元運算子還可以進一步簡化:**「exp1 ?: exp2;」將在exp1為true時返回exp1,否則返回exp2。此外,三元運算子是乙個語句而不是變數,不可以對其進行引用操作。

不要將三元運算子堆積在一起使用。

8.僅對表示式有效的運算子「@」可以忽略掉此表示式出現的所有錯誤資訊。(「如果能從某處得到值,就能在它前面加上@運算子。」)

9.關於遞增\遞減運算子

該運算子並不會影響布林值。對null的遞減操作沒有效果,對null的遞增的結果是整型數1.

<? php

@a = true; //結果應為true

var_dump(++@a);

var_dump(@a++);

var_dump(--@a);

var_dump(@a--);

@b = false; //結果應為false

var_dump(++@b);

var_dump(@b++);

var_dump(--@b);

var_dump(@b--);

@c = null;

var_dump(++@c);//結果應為整型數1

var_dump(@c++);//結果應為null(存疑)

var_dump(--@c);//這裡的兩個結果都將為null

var_dump(@c--);

@d = 'a'

@d++; //結果為'aa',這是與c語言不同的地方

?>

一篇很有用的大神的文章:

10.邏輯運算子

與運算比或運算有更高的優先順序,符號與(「&」)、符號或(「||」)比「and」、「or」有更高的優先順序。「and」、「or」的優先順序甚至比賦值用的「=」更低。因此有下面這個例子

<? php

$a = false || true;

//這個的結果是$a=true

$b = false and true;

//這個的結果是$b=false,因為「=」優先順序更高,$b被先行賦值false

?>

11.陣列運算子中要注意的點

「$arr1 + $arr2;」中僅會用$arr2在$arr1中沒有的鍵值對補充進$arr1中,鍵名相同的部分將保留$arr1中的值。

「!=」在兩陣列不等時為true,「!==」則在不全等時為true(這倆....似乎沒區別?)

不等「!=」還可以寫成「<>」

陣列中「===」為true的條件是鍵值對相等型別相同

12.型別運算子

instanceof用於檢測乙個變數是否屬於某乙個類\是否屬於繼承自某乙個父類的某乙個子類\是否實現了某乙個介面的物件的例項;還可判斷2個變數是否屬於同一類。

注意別把它當成函式了...

如果被檢測的變數不是物件,該運算不會提醒你而是僅僅返回false。

疑問:

1.對new運算子的引用為什麼會產生警告?

2.中涉及的字串的比較似乎不完全符合字串轉數值的規則?

運算子 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在需要的時候使用括號,可以增...

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...