簡介: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...