1、 PHP+
號運(yùn)算,字符串轉(zhuǎn)換規(guī)則
① 如果字符串以數(shù)字開頭且和字母(或符號)搭配,那么會(huì)舍棄字母(或符號)部分直接轉(zhuǎn)換為開頭的數(shù)字。例如,“24thiz”轉(zhuǎn)換后得到24。
② 如果字符串開頭加數(shù)字,那么字符串轉(zhuǎn)換成整型得0。例如,“abc110”得到的是0。
③ 如果是數(shù)字0開頭或以數(shù)字0開頭和字母(或符號)搭配的字符串,那么轉(zhuǎn)換時(shí),開頭的0會(huì)被舍棄。例如,“05abc”和“05”轉(zhuǎn)換成數(shù)字都是得到5。
2、字符串運(yùn)算符.
和算數(shù)運(yùn)算符+
.
是字符串連接運(yùn)算符;+
為加法算數(shù)運(yùn)算符,也可用于合并數(shù)組
兩個(gè)字符串使用+
運(yùn)算符:
① 如果
+
兩邊的字符串是由數(shù)字組成的,會(huì)將字符串自動(dòng)轉(zhuǎn)為整型
② 若兩邊是純粹的字母,則結(jié)果為零
③ 若兩邊字符串以數(shù)字開頭,則截取開頭的數(shù)字進(jìn)行運(yùn)算
注意:.
運(yùn)算符會(huì)優(yōu)先執(zhí)行函數(shù),如下代碼輸出結(jié)果為20myfunc(10)=
<?php
function myfunc($argument){
echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable)=".myfunc($variable);
3、遞增遞減運(yùn)算符
前置遞增遞減運(yùn)算符 ++$i
、--$i
先執(zhí)行運(yùn)算再返回值
后置遞增遞減運(yùn)算符$i++
、$i--
先返回值再執(zhí)行運(yùn)算
- 前置遞增遞減的運(yùn)行效率高于后置
- 遞增/遞減 不影響布爾值
- 遞減null 沒有效果
- 遞增null 為 1
4、 邏輯運(yùn)算符
且運(yùn)算符&&
、或運(yùn)算符||
短路作用:
<?php
$a = 0;
//此處$a 轉(zhuǎn)換為false,由于短路作用 &&后面的表達(dá)式不執(zhí)行
$a && $a = 2;
5、運(yùn)算符優(yōu)先級
遞增/遞減 >
!
> 大小比較 > (不)相等比較 > 引用 > 位運(yùn)算符(^)> 位運(yùn)算符(|)> 邏輯與 > 邏輯或 > 三目 > 賦值 > and > xor > or
建議使用()增加可讀性
6、 位運(yùn)算符
位與運(yùn)算符
&
,$a&$b
表示把$a
和$b
中都為1的位設(shè)為1
位或運(yùn)算符|
,$a|$b
表示把$a
和$b
中為1的位都設(shè)為1
位異或運(yùn)算符^
,$a^$b
表示把$a
和$b
中值不同的位設(shè)為1
左位移運(yùn)算符<<
,$a<<$b
表示把$a
中的位向左移動(dòng)$b
位(每移動(dòng)1位代表乘以2)
右位移運(yùn)算符>>
,$a>>$b
表示把$a
中的位向右移動(dòng)$b
位(每移動(dòng)1位代表除以2)