一.算數(shù)運算符
1. 加減乘除余
2.自增自減 ++ 场刑、--
- 常規(guī)對數(shù)字使用
- 對字符串使用,只能自增蚪战,自增效果規(guī)則和純數(shù)字的自增規(guī)則一樣
$v1 = "a";
$v1 ++; //b
$v2 = "A";
$v2 ++; //B
$v3 = "abc";
$v3 ++; //abd
$v4 = "xyz";
$v4 ++; //xza
$v5 = "xyzz";
$v5 ++; //xzaa
$v6 = "zzz";
$v6 ++; //aaa
$v7 = "abc9";
$v7 ++; //abd0
$v8 = "9z";
$v8 ++; //10a
- 布爾值自增自減都無效
- null自增結(jié)果是1牵现,自減無效
二.比較運算符
>=、<=邀桑、>瞎疼、<、==概漱、===丑慎、!=、!==
1.布爾值比較瓤摧,永遠都是 true > false
2.字符串比較,對于兩邊的字符玉吁,從前往后照弥、一個一個的取出字符進行比較。字母大于任何的數(shù)字进副。
"abc" > "c"; //false
//取a这揣,取c,a < c影斑,false给赞,終
"abc" > "ab1efefrg" //true
//1.取a,取a矫户,a=a片迅,往后;2.取b皆辽,取b柑蛇,b=b芥挣,往后;3.取c耻台,取1空免,c > 1,true盆耽,終
(字符的比較蹋砚,實際上就是字符編碼的比較,理論上中文也是可以比較的摄杂?記住幾個特殊的字符編碼坝咐。數(shù)字0:48;大寫A:65匙姜;小寫a:97)
三.邏輯運算符
- 與畅厢、或、非
-
短路與氮昧、短路或現(xiàn)象框杜,我們利用這種現(xiàn)象,將簡單的運算放在前面袖肥,復(fù)雜的運算放在后面咪辱。優(yōu)化性能。
四.連接椎组、賦值油狂、條件運算符
1.連接運算符 .
2.連接運算符 .=
兩邊是字符串就連起來,不是的話寸癌,就轉(zhuǎn)換成字符串再連起來
3.賦值運算符(基本) =
4.賦值運算符(衍生)+= 专筷、 -= 、 *= 蒸苇、 /= 磷蛹、 %= 、 .=
5.三元運算符溪烤,條件?執(zhí)行1 : 執(zhí)行2
五.位運算符
- “位”就是二進制的每一個位味咳,一個整數(shù)由32個位組成
- 位運算符是僅僅針對整數(shù)進行的,運算結(jié)果還是一個數(shù)字
- 有這么 4個基本運算符 檬嘀,&(按位與)槽驶、|(按位或)、~(按位非)鸳兽、^(按位異或掂铐,相同為0,不同為1)
- 非基本運算符
1.按位左移,<<堡纬,左移多少位聂受,左邊溢出的不管,右邊空出來的補0
2.按位有義烤镐,>> - 原碼蛋济,補碼,反碼
1.源碼炮叶,二進制數(shù)字最左邊一位是符號位碗旅。整數(shù)0,負數(shù)1镜悉。所以表示一個整數(shù)祟辟,其實只有31位可用?//5的原碼 00000000 00000000 00000000 00000101 //-3的原碼 10000000 00000000 00000000 00000011
2.反碼侣肄。正數(shù)反碼是它本身旧困;負數(shù)反碼符號位不變,其他位取反
3.補碼稼锅。正數(shù)補碼也是它本身吼具!負數(shù)補碼符號位不變,而其他位取反后加1矩距、即反碼加1
(計算機內(nèi)部運算全部用補碼進行運算拗盒,并且運算的時候符號位不再區(qū)分,也參與運算)
六.管理一組開關(guān)狀態(tài)
現(xiàn)實中很多數(shù)據(jù)只有兩種情況锥债,是或者否陡蝇,對應(yīng)我們的布爾值。所以我們其實是管理若干個只有兩個狀態(tài)的數(shù)據(jù)符號哮肚。
管理目標:使用一個變量就可以表達若干個數(shù)據(jù)的當前狀態(tài)登夫,這里具有三個目標
- 通過該變量,可以獲取任何一個數(shù)據(jù)的當前狀態(tài)
- 通過該變量允趟,可以“關(guān)閉”該數(shù)據(jù)狀態(tài)
- 通過該變量悼嫉。可以“開啟”該數(shù)據(jù)狀態(tài)
以下以5個燈泡為例拼窥,每個燈泡為一組數(shù)據(jù),每個燈泡都有開和關(guān)兩種狀態(tài)蹋凝。
//設(shè)定5個常量鲁纠,對應(yīng)每一個燈泡。觀察其二進制上的位數(shù)狀態(tài)鳍寂,設(shè)定 1 是亮改含, 0 是滅
define("D1", 1); //對應(yīng)二進制00000001
define("D2", 2); //對應(yīng)二進制00000010
define("D3", 4); //對應(yīng)二進制00000100
define("D4", 8); //對應(yīng)二進制00001000
define("D5", 16); //對應(yīng)二進制00010000
//定義一個變量,代表這5個燈泡的任意狀態(tài)組合
$status = 10; //對應(yīng)二進制00001010
//它表示第2個迄汛、第4個燈泡亮
1.獲取當前5個燈泡的狀態(tài)
//進行運算得出燈泡狀態(tài)
//第1個燈泡
if($status & D1 > 0){
echo "燈泡1亮";
}else{
echo "燈泡1滅";
}
//以同樣的運算可以得出其他4個燈泡的狀態(tài)
//整理成一個函數(shù)
function status(){
for($i = 1; $i < 6; $i ++){
$s = "D" . $i;
if((constant($s) & $GLOBALS['status']) > 0){
echo "燈泡" . $i . "是亮的 <br>";
}else{
echo "燈泡" . $i . "是滅的 <br>";
}
}
}
//運行可得出相應(yīng)的結(jié)果
status(10);
2.打開任意一個燈泡
//打開燈1
$status = $status | D1;
//驗證
status(10);
//打開燈5
$status = $status | D5;
//驗證
status(10);
3.關(guān)閉任意一個燈泡
//關(guān)閉燈2
$status = $status & (~D2);
//驗證
status(10);
七.數(shù)組運算符
- 數(shù)組聯(lián)合運算符捍壤,+骤视,將右邊的數(shù)組加到左邊,得到一個新的數(shù)組鹃觉;如果有重復(fù)的鍵专酗,以左邊的為準。
$arr1 = array('a'=>10, 'b'=>10, 'c'=>30);
$arr2 = array('a'=>40, 'b'=>50, 'd'=>60);
$arr = $arr1 + $arr2;
print_r($arr1);
- 運算符==盗扇,鍵名鍵值相同即可true祷肯,順序不必相同
- 運算符===,要求順序也必須相同
- 運算符!=疗隶,不要求順序
- 運算符!==佑笋,要求順序
八.錯誤控制運算符
通常就用開一個地方而已啦,鏈接數(shù)據(jù)庫時
$link = @$my_sqli("數(shù)據(jù)庫地址", "用戶", "密碼")
用以鏈接失敗時斑鼻,屏蔽該失敗的錯誤提示
九.運算符優(yōu)先級
所有運算符都是有優(yōu)先級的蒋纬,嘛,這個太多了坚弱,全記住太捉急了蜀备,記住重要的。
- 括號優(yōu)先