復制代碼 代碼如下:
<?php
/*運算符號(PHP)操作符號
*
* 按運算符號功能分為:
* 一、算術運算符 + - * / % ++ --
* 二、字符串運算符 . 連接運算符
* 三、賦值運算符 = += -= *= /= %= .=
* 四、比較運算符 > < >= <= == === != <> !==
* 比較運算符---條件運算符---關系運算符
* 比較後的結果只有一種:boolean true false
* === 比較時不僅要求內容相同,也要求類型相同
* !== 比較時內容不相同,也要求類型不相同
* 五、邏輯運算符 &&或and ||或or !或not
* 邏輯運算符只能操作bool型的值,返回的也是bool型的值
* 六、位運算符 & | ^ ~ << >> >>>
* 七、其他運算符 ? : `` @ => -> :: & $
* `` 用來執行操作系統內核
* @ 用來屏蔽掉錯誤信息
* 建議使用“()”改變表達式的優先級別
*
* % 有兩個目的:整除運算;控制范圍,不要用小數,也不要用負數
* % 會吧運算符兩邊的數轉為整數後再進行整除求余。
*/
//用 %符號判斷閏年
$year=2011;
if(($year%4==0 && %year%100!=0) || $year%400=0)
{
echo "run nian";
}
else
{
echo " not run nian";
}
// ++ --符號的使用
$a=10;
$a++; //$a=$a+1; 先用變量,再自增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}米<br>";
echo '我的名字是:'.$name.'我的年齡是:'.$age.'我的身高是:'.$height.'米'.'<br>';
echo "\$age=".$age; //$age=27
echo "我的名字是:{$name}我的年齡是:{$age}我的身高是:{$height}米<br>";//賦值運算符的使用
$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='<table>';
$str.='<tr>';
$str.='<td>';
$str.='</td>';
$str.='</tr>';
$str.='</table>';
echo $str;//輸出一個表格
//比較運算符
var_dump(15>6);//返回 bool(true)
$a=15;
if(15==$a)
{
echo "a=15";
}
else
{
echo "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";
$email="
[email protected]";
if($username=="admin" && $password="123456")
{
echo "用戶名密碼正確";
}
if($username=="" || $password=="" || $email=="")
{
echo "一個都不能為空";
}
//位運算符
$a=20; //00010100
$b=30; // 00011110
/*
* 20 00010100
* 30 00011110 &
*-----------------------------------
* 00010100
*
*/
$c=$a & $b;
echo $c;
/*補充,& | 也可以用做邏輯運算
* &&和||的 短路問題:
* &&在作運算時,如果前面的數為false,則後面是否為true,整個表達式都為false,所以就不去執行後面的操作數;
* ||在作運算時,如果前面的數為true,則後面的數是否為false,整個表達式都為true,所以就不去執行後面的操作數;
* 然而,& 或者 | 在作運算時,兩邊都會被執行
*/
$a=10;
if($a>5 || $a++<100){}
echo $a;//輸出10
$b=10;
if($b>5 | $b++<100){}
echo $b;//輸出11
/*
位的概念:一個位是由8個二進制數組成的(例00000000),
一個字節由8個位組成,那麼就有32個二進制數。
原碼:最高位 用0表示正數,1表示負數
+7 00000111
-7 10000111
反碼:一個數如果為正,則它的反碼與原碼相同;
一個數如果為負,則符號位為1,其余各位是對原碼取反;
+7 00000111
-7 11111000
+0 00000000
-0 11111111
補碼:一個數如果為正,則它的補碼與反碼與原碼相同
一個數如果為負,則它的補碼=反碼+1,去掉最高位的溢出位
-7 原碼 10000111 反碼11111000
+1
補碼11111001
已知一個負數的補碼,把它轉換為十進制數。
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 x>>>2
17 00010001 01000100 00000100 00000100
-17 11101111 10111100 11111011 00111011
結論:正數左右移動都補0,負數左移補0,帶符號右移補1,不帶符號補0
*/
//其他運算符的運用
$a=10;
$b=$a>5 ? $a : 5;//三元運算符,如果成立$b=$a否則$b=5
echo $b;
//用``來執行操作系統shell命令
$str=`ipconfig /all`;
echo '<pre>';
echo $str;
echo '</pre>';
?>