程式碼如下:
/*運算符號(PHP)操作符號
*
* 依運算符號功能分為:
* 一、算術運算子+ * / % ++ --
* 一、算術運算符、字元串運算子. 連結運算子
* 三、賦值運算子= += -= *= /= %= .=
* 四、比較運算子> = ! ==
* 比較運算子---條件運算子---關係運算子
* 比較後的結果只有一種:boolean true false
* === 比較時不僅要求內容相同,也要求類型相同
* !== 比較時內容不相同,也要求型別不相同
* 五、邏輯運算子&&或and ||或or !或not
* 邏輯運算子只能操作bool型的值,回傳的也是bool型的值
* 六、位元運算子& | ^ ~ > >>>
* 七、其他運算子? : `` @ => -> :: & $
* `` 用來執行作業系統核心
* @ 用來屏蔽錯誤訊息
* 建議使用「()」改變表達式的優先等級
*
* % 有兩個目的:整除運算;控制範圍,不要用小數,也不要用負數
* % 會吧運算子兩邊的數轉為整數後再進行整除求餘。
*/
//用%符號判斷閏年
$year=2011;
if(($year%4==0 && %year%100!=0) || $year%400=0)
{e
{e
"run nian";
}
else
{
echo " not run nian";
}
///++ --符號的使用
$a=10;
// ++ --符號的使用
$a=10;
// ++ --符號的使用
$a=10;
//$a; ; 先用變量,再自增1
++$a; //$a=$a+1; 先自增1,在用變量
$a--; //$a=$a-1; 先用變量,再自減1
--$a; //$a=$a-1; 先自減1,再用變量
echo $a; //結果為10
//++ -- 運算的區別
$a=10;
$b=$a++;//b=10,a=11
$c=--$b;//c=9,b=9
$d=$c++ + ++ $c; //d=20,c=11
$e=$d-- - --$d; //d=18,e=2
echo $d;
//字串運算子. 的使用
$name="tom";
$age=27;
$height=1.75;
echo "我的名字是:{$name}我的年齡是:{$age}我的身高是:{$height}米
";
echo '我的名字是:'.$name.'我的年齡是:'.$age.'我的身高是:'.$height.'米'.'
' ;
echo "$age=".$age; //$age=27
echo "我的名字是:{$name}我的年齡是:{$age}我的身高是:{$height}米";//賦值運算子的使用
$a=10;
$a+=10; //$a=$a+10;
$a-=10; //$a=$a-10;
$a*=10; //...
$a/=10; //...
$a%=10; //$a=$a%10;
$a.="abc"; //$a=$a."abc";
echo $a;
$str='
';
$str.='';
$str.=''; $str.=' | ';
$str.='
';
$str.='
';
echo $str;//輸出一個表格
//比較運算符
var_dump(15>6);//回傳bool(true)
$a=15;
if(15==$a)
{
echo "a=15";
} a!=15";
}
//邏輯運算子的使用
var_dump(true && true);//true
var_dump(true && false);//false
var_dump(true || false)/true;
var_dump(!true);//false
var_dump(!false);//true
//判斷使用者名稱密碼
$username="admin";
$password="123456"; > qq.com";
if($username=="admin" && $password="123456")
{
echo "使用者名稱密碼正確";
}
if($|| $password ="" || $email=="")
{
echo "一個都不能為空";
}
//位元運算子
$a=20; //00010100
$b=301 000001;
/*
* 20 00010100
* 30 00011110 &
*-----------------------------------
* 00010100
*
*/
$c=$a & $b;
echo $c;
/*補充,& | 也可以用做邏輯運算和
* &&和的短路問題: 在
* &||運算時,如果前面的數為false,則後面是否為true,整個表達式都為false,所以就不去執行後面的操作數;
* ||在作運算時,如果前面的數為true,則後面的數字是否為false,整個表達式都為true,所以就不去執行後面的運算元; 🎜* 然而,& 或| 在運算時,兩邊都會被執行
*/
$a=10;
if($a>5 || $a++echo $a;//輸出10
$b=10;
if($b>5 | $b++echo $b;//輸出11
/*
位元的概念:一個位元是由8個二進位數組成的(例00000000000000000000000000000000000000 ),
一個位元組由8個位元組成,那麼就有32個二進位數。
原碼:最高位用0表示正數,1表示負數
+7 00000111
-7 10000111
反碼:一個數字如果為正,則它的反碼與原碼相同;
一個數字如果為負,則符號位為1,其餘各位是對原碼取反;
+7 00000111
-7 11111000
+0 00000000
-0 111111111 原碼相同
一個數如果為負,則它的補碼=反碼+1,去掉最高位的溢位
-7 原碼10000111 反碼11111000
+111 反碼11111000
+1 ,把它轉換為十進制數。
1.先對各位取反
2.轉換為十進位數
3.加上負號,再減去1。
例:補碼11111010
取反00000101
4+1=5
-5-1=-6
位運算子:
& 位元與|按位或^ : 位元與01101101
&00110111
00100101
結論:只有1 1為1。
按位或 01101101
|00110111
01111111
結論:只有0 0為0。
按位異或 01101101
^00110111
01011010
結論:只有1 0或0 1時為1。 (也可以理解為處於不同狀態為1(真))
按位取反~00110111
11001000
結論:將0變1,1變0
移位運算符:
左移: :>> 無符號右移:>>>
例:數x x>2 x>>>2
17 00010001 01000100 00000100 00000100
-17 11010111 11
結論:正數左右移動都補0,負數左移補0,帶符號右移補1,不含符號補0
*/
//其他運算子的運用
$a=10;
$b=$a>5 ? $a : 5 ;//三元運算子,如果成立$b=$a否則$b=5
echo $b;
//用``來執行作業系統shell指令
$str=`ipconfig /all`;
echo '
'; <br>echo $str; <br>echo '
登入後複製
';
?>