運算符號(操作符號)
按運算符號的功能分為
一:算術運算符 (+ - * / % ++ --)
% //有兩個目的:整出運算;控制范圍的運算(不要用小數,也不要用負數)
//會把兩邊的數轉為整數後再進行整除
例子:
代碼:
$year=?;
if(($year%4==0 && $year%100!=0) || $year%400==0){
echo "是閏年";
}else{
echo "不是閏年";
}
代碼:
$a=109009;
echo $a%10;
++和--
例子:
代碼:
$a=10;
$a++; //$a=$a+1 先用變量在自增1
++$a; //$a=$a+1 先用自增1再用變量
$a--; //$a=$a-1 先用變量再自減1
--$a; //$a=$a-1 先自減1再用變量
代碼:
$a=10;
$b=$a++; //b=10,a=11
$c= --$b; //c=9,b=9
$d=$c++ + ++$c; //d=20,c=11
$e=$d-- - --$d; //e=2,d=18
二:字符串運算符(.)
三:賦值運算符(= += -= *= %= .=)
例子:
代碼:
$a=10;
$a+=10; //$a=$a+10;
$a-=10; //$a=$a-10;
$a*=10; //$a=$a*10;
$a/=10; //$a=$a/10;
$a%=10; //$a=$a%10;
$a.="abc"; //$a=$a."abc";
四:比較運算符(> < >= <= == === !=或<> !==) //也叫條件運算符,關系運算符
比較後結果只有一種:boolean true false
==和=== //比較時不僅要求內容相同,也要求類型相同
例子:
代碼:
$a=10;
if($a=100){
echo "正確";
}else{
echo "錯誤";
} //結果為正確,可是10是不會大於100的,因為=號是賦值,不是比較符號
代碼:
$a=100;
if($a==100){
echo "正確";
}else{
echo "錯誤";
} //結果為正確,因為==意思為是否等於的意思。
代碼:
$a=100;
if($a=="100"){
echo "正確";
}else{
echo "錯誤";
} //結果為正確,因為==比較的是內容,不要求類型
代碼:
$a=100;
if($a==="100"){
echo "正確";
}else{
echo "錯誤";
} //結果為錯誤,因為===不僅比較內容,還要要求類型,"100"是字符類型
代碼:
$a=100;
if($a===100){
echo "正確";
}else{
echo "錯誤";
} //結果為正確
!== // 這個是要求內容不相同,同時類型要不相同
五:邏輯運算符(&&或and ||或or !或not)
邏輯運算符只能操作bool型值,返回的也是bool型值
例子:
代碼:
var_dump(true && true); //true
var_dump(true && false); //false
var_dump(true || false); //true
var_dump(!true); //false
var_dump(!false); //true
六:位運算符(& | ^ ~ << >> >>>)
& 和 | 既可以作為邏輯運算符號,又可以做為位運算符號
短路問題:&& 和|| 會發生短路
&& 在做運算時,如果前面的參數是false,則後面是否為true,整個表達式都是false,所以就不去執行後面的操作數
|| 在做運算時,如果前面的參數是true,則後面的是否為false,整個表達式都是true,所以就不去執行後面的操作數
& 或 | 在做運算時,兩邊都會被執行
七:其他運算符(? : `` @ => -> :: & $)
條件 ?成立執行這裡 :不成立執行這裡
例子:
代碼:
$a=10;
$b=$a>5 ? $a : 5; //如果$a大於5就把$a賦值給$b,否則就是將5賦值給$b
echo $b; //結果是10
`` //執行系統命令的
例子: www.111cn.net
代碼:
$ip=`ipconfig`;
echo "<pre>";
echo $ip;
echo "</pre>";
@ //屏蔽錯誤
例子:
代碼:
@getType();
echo "mkmkmkmkmkmk<br>";