国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

搞定PHP面試 - 運(yùn)算符知識點(diǎn)整理

HelKyle / 2280人閱讀

摘要:除法運(yùn)算符總是返回浮點(diǎn)數(shù)。取模運(yùn)算符的結(jié)果和被除數(shù)的符號正負(fù)號相同。使用位運(yùn)算符時(shí)要特別注意優(yōu)先級。太空船運(yùn)算符組合比較符當(dāng)小于等于大于時(shí)分別返回一個(gè)小于等于大于的值。遞增遞減運(yùn)算符不影響布爾值。

一、算術(shù)運(yùn)算符 1. 概覽
例子 名稱 結(jié)果
$a + $b 加法 $a 和 $b 的和。
$a - $b 減法 $a 和 $b 的差。
$a * $b 乘法 $a 和 $b 的積。
$a / $b 除法 $a 除以 $b 的商。
$a % $b 取余 $a 除以 $b 的余數(shù)。
-$a 取反 $a 的相反數(shù)。
2. TIPS

除法運(yùn)算符總是返回浮點(diǎn)數(shù)。只有在下列情況例外:兩個(gè)操作數(shù)都是整數(shù)(或字符串轉(zhuǎn)換成的整數(shù))并且正好能整除,這時(shí)它返回一個(gè)整數(shù)。

取模運(yùn)算符的操作數(shù)在運(yùn)算之前都會轉(zhuǎn)換成整數(shù)(除去小數(shù)部分)。

取模運(yùn)算符 % 的結(jié)果和被除數(shù)的符號(正負(fù)號)相同。即 $a % $b 的結(jié)果和 $a 的符號相同。例如:

echo (5 % 3)."
";        // prints 2
echo (5 % -3)."
";        // prints 2
echo (-5 % 3)."
";        // prints -2
echo (-5 % -3)."
";       // prints -2
二、位運(yùn)算符 1. 概覽
例子 名稱 結(jié)果
$a & $b And(按位與) 將把 $a 和 $b 中都為 1 的位設(shè)為 1。
$a $b Or(按位或) 將把 $a 和 $b 中任何一個(gè)為 1 的位設(shè)為 1。
$a ^ $b Xor(按位異或) 將把 $a 和 $b 中一個(gè)為 1 另一個(gè)為 0 的位設(shè)為 1。
~ $a Not(按位取反) 將 $a 中為 0 的位設(shè)為 1,反之亦然。
$a << $b Shift left(左移) 將 $a 中的位向左移動 $b 次(每一次移動都表示“乘以 2”)。
$a >> $b Shift right(右移) 將 $a 中的位向右移動 $b 次(每一次移動都表示“除以 2”)。
2. TIPS

位移在 PHP 中是數(shù)學(xué)運(yùn)算。
向任何方向移出去的位都被丟棄。
左移時(shí)右側(cè)以零填充,符號位被移走意味著正負(fù)號不被保留。
右移時(shí)左側(cè)以符號位填充,意味著正負(fù)號被保留。

使用位運(yùn)算符時(shí)要特別注意優(yōu)先級。例如 :
$a & $b == true 先進(jìn)行比較再進(jìn)行按位與;
($a & $b) == true 則先進(jìn)行按位與再進(jìn)行比較。

三、比較運(yùn)算符 1. 概覽
例子 名稱 結(jié)果
$a == $b 等于 TRUE,如果類型轉(zhuǎn)換后 $a 等于 $b。
$a === $b 全等 TRUE,如果 $a 等于 $b,并且它們的類型也相同。
$a != $b 不等 TRUE,如果類型轉(zhuǎn)換后 $a 不等于 $b。
$a <> $b 不等 TRUE,如果類型轉(zhuǎn)換后 $a 不等于 $b。
$a !== $b 不全等 TRUE,如果 $a 不等于 $b,或者它們的類型不同。
$a < $b 小與 TRUE,如果 $a 嚴(yán)格小于 $b。
$a > $b 大于 TRUE,如果 $a 嚴(yán)格大于 $b。
$a <= $b 小于等于 TRUE,如果 $a 小于或者等于 $b。
$a >= $b 大于等于 TRUE,如果 $a 大于或者等于 $b。
$a <=> $b 太空船運(yùn)算符(組合比較符) 當(dāng)$a小于、等于、大于$b時(shí) 分別返回一個(gè)小于、等于、大于0的integer 值。 PHP7開始提供
$a ?? $b ?? $c NULL 合并操作符 從左往右第一個(gè)存在且不為 NULL 的操作數(shù)。如果都沒有定義且不為 NULL,則返回 NULL。PHP7開始提供。
2. TIPS

如果比較一個(gè)數(shù)字和字符串或者比較涉及到數(shù)字內(nèi)容的字符串,則字符串會被轉(zhuǎn)換為數(shù)值并且比較按照數(shù)值來進(jìn)行。此規(guī)則也適用于 switch 語句。當(dāng)用 === 或 !== 進(jìn)行比較時(shí)則不進(jìn)行類型轉(zhuǎn)換,因?yàn)榇藭r(shí)類型和數(shù)值都要比對。

 true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true

switch ("a") {
case 0:
    echo "0";
    break;
case "a": // 永遠(yuǎn)不會到達(dá)a,因?yàn)?"a" 已經(jīng)與 0 匹配
    echo "a";
    break;
}
?>
3. 對于多種類型,比較運(yùn)算符根據(jù)下表比較(按順序)
運(yùn)算數(shù)1類型 運(yùn)算數(shù)2類型 結(jié)果
null 或 string string 將 NULL 轉(zhuǎn)換為 "",進(jìn)行數(shù)字或詞匯比較
bool 或 null 任何其它類型 轉(zhuǎn)換為 bool,F(xiàn)ALSE < TRUE
object object 內(nèi)置類可以定義自己的比較,不同類不能比較,相同類和數(shù)組同樣方式比較屬性(PHP 4 中),PHP 5 有其自己的說明
string,resource 或 number string,resource 或 number 將字符串和資源轉(zhuǎn)換成數(shù)字,按普通數(shù)學(xué)比較
array array 具有較少成員的數(shù)組較小,如果運(yùn)算數(shù) 1 中的鍵不存在于運(yùn)算數(shù) 2 中則數(shù)組無法比較,否則挨個(gè)值比較(見下例)
object 任何其它類型 object 總是更大
array 任何其它類型 array 總是更大
4. 松散比較表
1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE × × × × ×
FALSE × × × × ×
1 × × × × × × × ×
0 × × × ×
-1 × × × × × ×
"1" × × × × × ×
"0" × × × × ×
"-1" × × × ×
NULL ×
array() × ×
"php" ×
四、遞增/遞減運(yùn)算符 1. 概覽
例子 名稱 效果
++$a 前加 $a 的值加一,然后返回 $a。
$a++ 后加 返回 $a,然后將 $a 的值加一。
--$a 前減 $a 的值減一, 然后返回 $a。
$a-- 后減 返回 $a,然后將 $a 的值減一。
2. TIPS

遞增/遞減運(yùn)算符不影響布爾值。
遞減 NULL 值也沒有效果,但是遞增 NULL 的結(jié)果是 1。
在處理字符變量的算數(shù)運(yùn)算時(shí),PHP 沿襲了 Perl 的習(xí)慣,而非 C 的。
例如,在 Perl 中 $a = "Z"; $a++; 將把 $a 變成"AA",而在 C 中,a = "Z"; a++; 將把 a 變成 "["("Z" 的 ASCII 值是 90,"[" 的 ASCII 值是 91)。
注意字符變量只能遞增,不能遞減,并且只支持純字母(a-z 和 A-Z)。
遞增/遞減其他字符變量則無效,原字符串沒有變化。

五、邏輯運(yùn)算符 1. 概覽
例子 名稱 結(jié)果
$a and $b And(邏輯與) TRUE,如果 $a 和 $b 都為 TRUE。
$a or $b Or(邏輯或) TRUE,如果 $a 或 $b 任一為 TRUE。
$a xor $b Xor(邏輯異或) TRUE,如果 $a 或 $b 任一為 TRUE,但不同時(shí)是。
! $a Not(邏輯非) TRUE,如果 $a 不為 TRUE。
$a && $b And(邏輯與) TRUE,如果 $a 和 $b 都為 TRUE。
$a || $b Or(邏輯或) TRUE,如果 $a 或 $b 任一為 TRUE。
2. TIPS

“與”和“或”有兩種不同形式運(yùn)算符的原因是它們運(yùn)算的優(yōu)先級不同。

// "&&" 比 "and" 的優(yōu)先級高

// 表達(dá)式 (true && false) 的結(jié)果被賦給 $g
// 等同于:($g = (true && false))
$g = true && false;

// 常量 true 被賦給 $h,false 被忽略
// 等同于:(($h = true) and false)
$h = true and false;
六、數(shù)組運(yùn)算符 1. 概覽
例子 名稱 結(jié)果
$a + $b 聯(lián)合 $a 和 $b 的聯(lián)合。
$a == $b 相等 如果 $a 和 $b 具有相同的鍵/值對則為 TRUE。
$a === $b 全等 如果 $a 和 $b 具有相同的鍵/值對并且順序和類型都相同則為 TRUE。
$a != $b 不等 如果 $a 不等于 $b 則為 TRUE。
$a <> $b 不等 如果 $a 不等于 $b 則為 TRUE。
$a !== $b 不全等 如果 $a 不全等于 $b 則為 TRUE。
2. TIPS 數(shù)組中的單元如果具有相同的鍵名和值則比較時(shí)相等
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
+ 運(yùn)算符array_merge() 的區(qū)別

當(dāng)數(shù)組下標(biāo)為字符時(shí),遇到相同鍵名,+ 運(yùn)算符會拋棄掉后面的值; array_merge()會用后面的值覆蓋前面的值。
當(dāng)數(shù)組下標(biāo)為數(shù)值時(shí), array_merge()會保留所有的值,并重新索引數(shù)組。+ 運(yùn)算符同樣會拋棄掉后面具有相同下標(biāo)的值。

$arr1 = ["color" => "red", 10, 20];
$arr2 = [0, 1, "color" => "green"];

print_r($arr1 + $arr2);
print_r(array_merge($arr1, $arr2));

輸出:

Array ( [color] => red [0] => 10 [1] => 20 ) 
Array ( [color] => green [0] => 10 [1] => 20 [2] => 0 [3] => 1 )
七、運(yùn)算符優(yōu)先級 1. 概覽
結(jié)合方向 運(yùn)算符 附加信息
clone new clone 和 new
[ array()
** 算術(shù)運(yùn)算符
++ -- ~ (int) (float) (string) (array) (object) (bool) @ 類型和遞增/遞減
instanceof 類型
! 邏輯運(yùn)算符
* / % 算術(shù)運(yùn)算符
+ - . 算術(shù)運(yùn)算符和字符串運(yùn)算符
<< >> 位運(yùn)算符
< <= > >= 比較運(yùn)算符
== != === !== <> <=> 比較運(yùn)算符
& 位運(yùn)算符和引用
^ 位運(yùn)算符
| 位運(yùn)算符
&& 邏輯運(yùn)算符
|| 邏輯運(yùn)算符
?? 比較運(yùn)算符
? : ternary
= += -= = *= /= .= %= &= |= ^= <<= >>= 賦值運(yùn)算符
and 邏輯運(yùn)算符
xor 邏輯運(yùn)算符
or 邏輯運(yùn)算符
2. TIPS

如果運(yùn)算符優(yōu)先級相同,那運(yùn)算符的結(jié)合方向決定了該如何運(yùn)算。例如,"-"是左聯(lián)的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3 并且結(jié)果是 -4. 另外一方面,"="是右聯(lián)的,所以 $a = $b = $c 等同于 $a = ($b = $c)。

沒有結(jié)合的相同優(yōu)先級的運(yùn)算符不能連在一起使用,例如 1 < 2 > 1 在PHP是不合法的。但另外一方面表達(dá)式 1 <= 1 == 1 是合法的, 因?yàn)?== 的優(yōu)先級低于 <=。

括號的使用,哪怕在不是必要的場合下,通過括號的配對來明確標(biāo)明運(yùn)算順序,而非靠運(yùn)算符優(yōu)先級和結(jié)合性來決定,通常能夠增加代碼的可讀性。

著重記憶:

遞增/遞減 > ! > 算術(shù)運(yùn)算符 > 大小比較 > (不)相等比較 > 引用 > 位運(yùn)算符(^) > 位運(yùn)算符(|) > 邏輯與 > 邏輯或 > 三目 > 賦值 > and > xor > or

3. 實(shí)戰(zhàn)例題

請寫出下列程序輸出的結(jié)果

$a = 0;
$b = 0;

if ($a = 3 > 0 || $b = 3 > 0) 
{
    $a++;
    $b++;
    echo $a. "
";
    echo $b. "
";
}
例題分析

1.題目中包含 = > || 三種運(yùn)算符,優(yōu)先級順序?yàn)?> > || > =
2.$a = 3 > 0 || $b = 3 > 0 等價(jià)于 $a = ( ( 3 > 0 ) || $b = ( 3 > 0 ) )
3.( 3 > 0 ) 為 true,因此不會再運(yùn)算 || 后面的式子
4.$a = true,所以程序可以改寫為

$a = 0;
$b = 0;

if ($a = true) 
{
    $a++;
    $b++;
    echo $a. "
";
    echo $b. "
";
}

5.因?yàn)?“遞增/遞減運(yùn)算符不影響布爾值”,所以 $a++ 后,$a 的值依然是 true,echo true,會輸出 1
6.因?yàn)?$b = 0 ,所以 $b++ 后,$b 的值為 1
7.輸出結(jié)果為

1
1

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/29404.html

相關(guān)文章

  • 搞定PHP面試 - 函數(shù)知識點(diǎn)整理

    摘要:使用中文函數(shù)名和變量名面積長寬長寬面積合法,輸出中文符號函數(shù)名。類型聲明類型聲明允許函數(shù)在調(diào)用時(shí)要求參數(shù)為特定類型。需要使用自己的包裝函數(shù)來將這些結(jié)構(gòu)用作可變函數(shù)。匿名函數(shù)目前是通過類來實(shí)現(xiàn)的。 一、函數(shù)的定義 1. 函數(shù)的命名規(guī)則 函數(shù)名可以包含字母、數(shù)字、下劃線,不能以數(shù)字開頭。 function Func_1(){ } //合法 function func1(){ } //合法 ...

    SimpleTriangle 評論0 收藏0
  • 搞定PHP面試 - 正則表達(dá)式知識點(diǎn)整理

    摘要:是決定正則表達(dá)式匹配規(guī)則的主要部分。二分隔符分隔符的選擇當(dāng)使用函數(shù)的時(shí)候,正則表達(dá)式必須由分隔符閉合包裹。果分隔符經(jīng)常在正則表達(dá)式內(nèi)出現(xiàn),最好使用其他分隔符來提高可讀性。需要將一個(gè)字符串放入正則表達(dá)式中使用時(shí),可以用函數(shù)對其進(jìn)行轉(zhuǎn)義。 一、簡介 1. 什么是正則表達(dá)式 正則表達(dá)式(Regular Expression)就是用某種模式去匹配一類字符串的一種公式。正則表達(dá)式使用單個(gè)字符串來...

    AaronYuan 評論0 收藏0
  • 搞定PHP面試 - 變量知識點(diǎn)整理

    摘要:聲明靜態(tài)變量時(shí)不能用表達(dá)式的結(jié)果對其賦值正確錯(cuò)誤使用表達(dá)式的結(jié)果賦值錯(cuò)誤使用表達(dá)式的結(jié)果賦值靜態(tài)變量與遞歸函數(shù)靜態(tài)變量提供了一種處理遞歸函數(shù)的方法。 一、變量的定義 1. 變量的命名規(guī)則 變量名可以包含字母、數(shù)字、下劃線,不能以數(shù)字開頭。 $Var_1 = foo; // 合法 $var1 = foo; // 合法 $_var1 = foo; // 合法 $Var-1 = foo; /...

    Mertens 評論0 收藏0
  • 搞定PHP面試 - MySQL基礎(chǔ)知識點(diǎn)整理 - 存儲引擎

    摘要:支持崩潰后的安全恢復(fù)。的使用場景更新密集的表存儲引擎特別適合處理多重并發(fā)的更新請求。外鍵約束支持外鍵的存儲引擎只有。引擎是及之前版本的默認(rèn)存儲引擎。文件存儲表的索引。引擎存儲引擎是引擎的變種。 MySQL基礎(chǔ)知識點(diǎn)整理 - 存儲引擎 0. 查看 MySQL 支持的存儲引擎 可以在 mysql 客戶端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

    whatsns 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<