《我的php學(xué)習(xí)第二十六天——PHP基礎(chǔ)語法,php運算符》要點:
本文介紹了我的php學(xué)習(xí)第二十六天——PHP基礎(chǔ)語法,php運算符,希望對您有用。如果有疑問,可以聯(lián)系我們。
在PHP程序中,變量和常量是經(jīng)常用到的
PHP是操作數(shù)據(jù),數(shù)據(jù)在靜態(tài)的時候是放到文件或者數(shù)據(jù)庫中,當(dāng)程序操作數(shù)據(jù)的時候,數(shù)據(jù)是以變量或者常量的形式存在于內(nèi)存.
在真實的項目環(huán)境中,只有數(shù)據(jù)操作是不夠的.還應(yīng)該有很多業(yè)務(wù)邏輯,就是對數(shù)據(jù)進行判斷.體現(xiàn)在程序中就是各種表達式.
表達式:凡是有返回值的語句都稱之為表達式
$a = 10;
$a > 10;
Php中運算符有:算術(shù)運算符,邏輯運算符,比較運算符,賦值運算符,位運算符,三元運算符,錯誤抑制符,連接運算符,自操作運算符
算術(shù)運算符:+,-,*,/,%
算術(shù)運算符是用來進行簡單的數(shù)學(xué)計算的.
模運算的原理:取余運算,獲得兩個數(shù)相除之后的余數(shù).
錯誤抑制符:@,表示抑制錯誤的輸出,示例在上圖
賦值運算符:=,+=,-=,*=,/=,%=,.=
賦值運算符是改變變量的值,是將運算符右邊的結(jié)果賦值給左邊.
+=,-=,*=,/=,%=
$a += 1; <============> $a = $a + 1;
注意:/=后面不能跟0
邏輯運算符
指的是當(dāng)多個條件并存的時候,找出其中一些關(guān)聯(lián).將多個條件一起參與運算的時候,就需要使用邏輯運算符.
邏輯運算符:&&,||,!
$a = true;
$b = false;
&&:表示且的意思,$a && $b,需要a和b同時為真的時候結(jié)果才為真,其中如果有任意一個不為真則結(jié)果假
||:表示或的意思,$a || $b,表示a和b中只要有一個結(jié)果為真,那么整個結(jié)果則為真,a和b同時為假的時候才返回假
!:邏輯非,表示對一個布爾結(jié)果取反,!$a,表示,如果a為真,則最終結(jié)果是假,如果a為假,則整個結(jié)果為真
邏輯運算符又稱之為短路運算符
如果在第一個條件已經(jīng)能夠判斷最終結(jié)果的情況下,不會在向下去判斷其他的元素.
$a = true;
$b = false;
Var_dump($a && $b);//從左往右判斷整個表達式,先判斷$a,是true但是不能代表整個表達式的結(jié)果,所以還需要繼續(xù)判斷,判斷$b,為false,所以整個結(jié)果為false
Var_dump($a || $b);//先判斷$a,true,這個時候因為是或運算,只要其中有一個為true,那么整個結(jié)果為true,所以當(dāng)?shù)谝粋€條件為true的時候,已經(jīng)可以得到整個表達式的結(jié)果,所以不需要判斷$b,直接返回true
&&可以使用and
||可以使用or
在PHP中大部分使用邏輯運算符的時候,使用是符號,而不是單詞;而在mysql中大部分的時候使用的是單詞而不是符號
比較運算符
比較運算符是用來判斷多個值之間的關(guān)系
比較運算符:>,>=,<,<=,==,===,!=,!==
<,<=,>,>=,==,!=,通常是用來比較大小的
===,!==,用來比較類型
注意:
在進行比較的時候,系統(tǒng)會對數(shù)據(jù)進行自動轉(zhuǎn)換(字符串與數(shù)值進行比較的時候,會將字符串轉(zhuǎn)換成數(shù)值之后,再進行比較)
===不單要求值大小一致,要求值對應(yīng)的數(shù)據(jù)類型完全一致.
連接運算符
將兩個或者多個數(shù)據(jù)進行連接,指的是字符串的拼接
連接運算符只有一個:.
$a = ‘a(chǎn)bc’;
$b = ‘ok’;
$c = $a . $b; //將a變量的值與b變量的值先進行連接,然后再賦值給c變量
字符串的賦值運算
$a .= $b;
$a = $a . $b;
先運算$a . $b = ‘a(chǎn)bc’ . ‘ok’ = ‘a(chǎn)bcok’;
再賦值$a = ‘a(chǎn)bcok’;
注意:使用.號的時候,不論之前變量的類型是什么,都會最終變成字符類型.
自操作運算符
自己操作自己的運算符
自操作運算符:++,--
++:自己對自己+1
--:自己對自己-1
自操作運算符分為兩類:前置自操作,后置自操作
$a = 10;
$a++; //后置自操作
++$a; //前置自操作
$a = 10;
$d = 10;
$b = ++$a; //$a = $a + 1;$b = $a;
$c = $d++; //$c = $d;$d = $d + 1;
前置++:先對變量本身進行自加1運算,然后再將整個值賦值給其他變量
后置++:先將變量本身的值賦值給其他變量,然后再對自己進行+1運算
后置自操作原理
$a = 10;
$b = $a++;
等價于
$b = $a; //1 實際上是2
$a = $a + 1; //2 實際上是1
原因:++運算符的優(yōu)先級比 = 高
自操作運算符,通常用到循環(huán)變量的控制
For($i = 0;$i < 10;$i++);while($i < 100){++$i;}
有興趣
$a = 10;
$b = &$a;
$b = $a++ + $a++’
$c = ++$a + ++$a;
三元運算符
也叫三目運算,是因為參與運算的表達式有三個.
語法:$a ? $b : $c
如果$a為真,則執(zhí)行$b
如果$a為假,則執(zhí)行$c
三元運算符完全可以使用if else替代,所以說三目運算是對簡單的if else的一個簡化
位運算符
電腦最小單位是位,bit
一個字節(jié)有8個bit
所有的數(shù)據(jù)存儲在電腦里,都是以二進制存在
$a = 2; //整型,占四個字節(jié)
十進制轉(zhuǎn)二進制
數(shù)據(jù)在電腦內(nèi)存里的二進制表示
位運算指對具體內(nèi)存的具體位進行操作.
位運算符:&,|,~,^,<<,>>
&:按位與,當(dāng)兩個位的值同時為1的時候,結(jié)果才為1,否則結(jié)果為0
00010001 17
&
11111110 254
=
00010000 16
|:按位或,當(dāng)兩個位的值只要有一個為1的時候,結(jié)果就是1,否則為0
00010001 17
|
11111110 254
=
11111111 255
~:按位取反,指的是如果當(dāng)前位為0,則變成1,如果是1則變成0
00010001 17
~
11101110 238
有符號和無符號:PHP中默認的整型都是有符號類型,系統(tǒng)會在整數(shù)的第一位當(dāng)做符號位,其中0表示整數(shù),1表示負數(shù)
原碼反碼補碼
系統(tǒng)為了解決正0和負0不一致的情況,所以設(shè)計了原碼反碼補碼
原碼:指的是將一個數(shù)值按照其符號轉(zhuǎn)變成的二進制碼
2 00000010
-2 10000010
正負數(shù)的原碼區(qū)別在于符號位的不同
反碼:指的是將符號位除外,其他的位取反得到的結(jié)果
正數(shù)的原碼和反碼一致
2 00000010
-2 111111101
補碼:指的是在反碼的基礎(chǔ)上+1
正數(shù)的原碼,反碼,補碼都是一致的
2 00000010
-2 111111110
注意:
正數(shù)在內(nèi)存里的存儲結(jié)構(gòu)就是其二進制對應(yīng)的編碼
負數(shù)在內(nèi)存里存儲結(jié)構(gòu)對應(yīng)的是負數(shù)的補碼
正2取反的結(jié)果是-3
正數(shù)原碼反碼補碼一致,只要從二進制轉(zhuǎn)化成十進制即可
負數(shù)的保存形式是補碼,如果要得到負數(shù)的結(jié)果,需要把補碼轉(zhuǎn)化成原碼之后,再進行二進制轉(zhuǎn)十進制(符號位除外)
系統(tǒng)保存正負數(shù)的最大值區(qū)別
^:按位異或,如果兩位不一樣則返回1,如果兩位一樣就返回0
00010001 17
^
11111110 254
=
11101111
<<:左移運算,將內(nèi)存對應(yīng)的位向左移動一位,右邊補0,每次左移使得結(jié)果乘以2
00010001 17
<<
00100010 34
>>:右移運算,將內(nèi)存賭贏的位向右移動一位,左邊補0,每次右移是的結(jié)果除2;
00010001 17
>>
00001000 8
Heredoc對應(yīng)雙引號
$str = <<< EOT
//內(nèi)容
//能夠解析變量
EOT;
Nowdoc對應(yīng)單引號
$str = <<< ‘EOT’
//內(nèi)容
//不能解析變量
EOT;
維易PHP培訓(xùn)學(xué)院每天教你實戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6504.html