php與運算
⑴ php的比較運算符
$a == $b 等於 如果類型轉換後 $a 和 $b 的值相等,則返回 TRUE,否則返回 FALSE
$a === $b 全等 如果 $a 和 $b 不僅值相等,而且它們值的類型也相等,則返回 TRUE,否則返回 FALSE
$a != $b 不等於 如果類型轉換後 $a 的值不等於 $b 的值,則返回TRUE,否則返回 FALSE
$a <> $b 不等於 與 != 相同,如果類型轉換後 $a 的值不等於 $b 的值,則返回 TRUE,否則返回 FALSE
$a !== $b 不全等 如果 $a 的值不等於 $b的值,或者它們值的類型不同,則返回 TRUE,否則返回 FALSE
$a < $b 小與 如果 $a 的值小於 $b 的值,則返回 TRUE,否則返回 FALSE
$a > $b 大於 如果 $a 的值大於 $b 的值,則返回 TRUE,否則返回 FALSE
$a <= $b 小於等於 如果 $a 的值小於或者等於 $b 的值,則返回 TRUE,否則返回 FALSE
$a >= $b 大於等於 如果 $a 的值大於或者等於 $b 的值,則返回 TRUE,否則返回 FALSE
$a <=> $b 太空船運算符(組合比較符) 當 $a小於、等於、大於 $b時 分別返回一個小於、等於、大於0的整型值。
⑵ 在PHP中【邏輯運算符】和【位運算符】有什麼本質的區別
這個很難細說,不過和C語言中的邏輯運算符和位運算符是一樣區別的
下面給個參考(摘至某人博客):
一、邏輯運算符:
包括:1。&&邏輯與 2。||邏輯或 3。!邏輯非
邏輯運算符用於對包含關系運算符的表達式進行合並或取非
對於使用邏輯運算符的表達式,返回0表示「假」,返回1表示「真」。關於邏輯運算符的解釋
請注意:任何使用兩個字元做符號的運算符,兩字元之間不應有空格,即將==寫成= =是錯誤的。
假設一個程序在同時滿足條件a<10和b==7時,必須執行某些操作。應使用關系運算符和邏輯運算符「與」來寫這個
條件的代碼。用&&表示「與」運算符,該條件代碼如下:
(a<10) && (b==7);
類似地,「或」是用於檢查兩個條件中是否有一個為真的運算符。它由兩個連續的管道符號(||)表示。如果上例
改為:如果任一語句為真,則程序需執行某些操作,則條件代碼如下:
(a<10) || (b==7);
第三個邏輯運算符「非」用一個感嘆號(!)表示。這個運算符對表達式的真值取反。例如,如果變數s小於10,程序
程序需執行某些操作,則條件代碼如下:
(s<10)
或
(!(s>=10)) //s不大於等於10
關系運算符和邏輯運算符的優先順序一般都低於算術運算符。例如,5>4+3的計算與5>(4+3)運算符是一樣的,即
先計算4+3,再執行關系運算。此表達示的結果為「假」,即,將返回0。
下面的語句
printf("%d",5>4+3);
將輸出 0
可以總結為:&&的結果是真真為真。||的結果是假假為假。
二、位運算符:
包括:1。&位與符 2。|位或符 3。^位異或符 4。~位取反符
以操作數12為例。位運算符將數字12視為1100。位運算符將操作數視為位而不是數值。數值
可以是任意進制的:十進制、八進制或十六進制。位運算符則將操作數轉化為二進制,並相應地返回1或0。
位運算符將數字視為二進制值,並按位進行相應運算,運算完成後再重新轉換為數字。例如:
表達式10&15表示(1010 & 1111),它將返回表示1010的值10。因為真真得真,或者是11得1,同位全是1結果也是1
表達式10|15表示(1010 | 1111),它將返回表示1111的值15。假假得假。全零得零。
表達式10^15表示(1010 ^ 1111), 它將返回表示0101的值5。此時是同性相斥,相同的就為假。
表達式~10表示(~1010),它將返回表示0101的值 -11。此號好理解,按位取反
⑶ php中&&和and有什麼區別
從執行效果上看 沒有區別~~
只是 程序一般講究得是一致性 前面用== 那麼我覺得後面用&& 我個人覺得要好看些
呵呵 僅僅是個人意見~~
⑷ 第十二講 PHP 邏輯運算符
邏輯運算符用來組合邏輯運算的結果,是程序設計中一組非常重要的運算符。
PHP中的邏輯運算符如下表所示:
左右兩個條件同時為 TRUE 時,則結果為 TRUE;兩個條件中有任意一個條件為 FALSE 時,則結果為 FALSE。當左邊的條件為 FALSE 時,將直接跳過右邊的條件直接返回 FALSE。
運行結果:
如果兩個條件有一個為 TRUE,則結果為 TRUE;如果兩個條件都是為 FALSE,則結果為 FALSE。當左邊條件為 TRUE,將跳過右邊條件的判斷,直接返回 TRUE。
調整上面的示例:
運行結果:
將一個布爾值進行取反操作。例如:!true = false、!false = true、!10 = false。
調整上面的示例:
⑸ php 的位運算總結
php的位運算很少會用到,但是用處很大,
在有些演算法中會用到,在許可權管理中也會經常用到,
對於理解計算機的世界也會有一定的幫助,所以得把這些重要但不常用的東西總結一下記錄一下。
提到位運算,避不開的是二進制。
因為位運算是直接在內存做操作和運算,相較與直接拿兩個變數做運算符肯定是更快的。
很多地方把二進制這玩意說得很晦澀,現在來以最簡單的方式來總結一下,當然只算 int 范圍內的數算了,超過了這個范疇程序員還不如拿這時間去學點別的。
說完以上總結,再來解釋下什麼是二進制,網上大把,
但只要記住,int范圍內的數也就是我們大部分需要用到的數,都可以用二進制來表示。
我們生活中用到的計數方式為十進制,由個數位滿10進1,
然後再開始重新計算,等十位滿9再加一時,百位加一,十位歸零。
二進制則只有兩個數字來表示就是0和1,滿2進1。
由32個位組成,雖然只有32個位但已滿足了我們正常的需求了
比如說1轉換為2進制原碼,由於1是正數所以符號位為0,
原碼反碼補碼都一個樣。
1的原碼:00000000 00000000 00000000 00000001
因手懶,太多0太丑用+拼接,Ɔ* 8'代表8個0
2的原碼:0* 8 0* 8 0* 8 0* 6 + 1 0,既然是二進制,
滿2就得進1,最低位歸0,向前加一。
再來解釋下負數的原碼反碼和補碼,就開始講php的位運算了。
二進制復習完畢。下面開始講講php的位運算。
php一共有六種位運算,一種一種來講。
可以這么理解,兩個數的補碼放在一起比較每個位(一共32個位),
可以得出另外一個數,這個數字的組成由比較的兩位數字生成,
如果兩個數的每個位數上的數字都等於1的話,
那得到的那個數的補碼的同位為1,否則為0。
聽著繞口,其實很簡單,覺得還是比官網上的更容易讓新手看懂
下面舉例子:
首先來求-1和7的補碼。7的原碼就是補碼。
兩個補碼都有了下面開始運算:
按照上面的說法, 每個位都有一樣則 $a 的同等位則為1,剛好-1的補碼和7的補碼前面都不一樣,就最後三位一樣,所以剛好求得的 $a 的補碼的最後三位是1而其他的都是0 ,剛好這個補碼為正數,正好就是7。
其實就是和按位與相反,只要有1個為1,那就為1,如果都不為1,那就為0。
$a = -1|7 ;得出來的 $a 補碼為32個1,但此時不能說 $a 就是-1,因為這只是補碼,要轉成原碼再轉成十進制數,補碼-1,然後再翻轉,再轉出來,得到的其實也還是-1。
就是將這個數的補碼全部翻轉過來,包括符號位,0變1,1變0
取反的結果一定是整數變負數負數變正數,取正數的反時,
記得一定要從補碼一步步轉到原碼再轉成十進制數才是答案。
兩個數的補碼比較,同等位上的兩數比較
,不一樣時,則答案的補碼的同位則為1,否則為0。
往左移符號位被擠走右邊0補充,往右移動,符號位不動,
高位以符號位補充。二進制世界裡往左移動其實是相當於乘以了2,
右移相當於除以了2。
不吹牛逼的說,這應該是互聯網上最容易理解的php位運算的解釋和二進制的解釋了。
原文鏈接: php的位運算總結-PHP
⑹ php怎麼把獲取到的數組值『1+1』轉換成1+1 可以運用與運算
1+1,要先提取+左右兩邊的數值,然後再做運算。
做法:
1、先獲得1+1這個字元串中+的位置,用instr函數,比如你發送給她的字元串1+1保存在變數s中,那麼就可以獲得+號的位置,n=instr(s,"+")
2、或者+左右兩邊的數據,左邊的:lnum=val(left(s,n-1)),右邊的:rnum=val(right(s,len(s)-n))
3、再把左右兩邊的數據相加,result=lnum+rnum
同樣減、乘、除都可以,只是要做一下判斷,代碼會比較多。就不寫了。除了判斷條件,基本上和上面差不多
⑺ php中&&與&有什麼區別
PHP中&&與&的區別:
1、運算符性質的區別
&&在PHP中是一個邏輯操作符,也叫條件操作符。
&是邏輯語言,邏輯上表示兩者屬於缺一不可的關系,還可以表示一個人和另外一個人之意,與and同義。如A&B,表示A與B,A和B,A×B。
2、作用上的區別
&&就是判斷兩個表達式的真假性,只有兩個表達式同時為真才為真,有一個為假則為假,具有短路性質。
&是將兩個二進制的數逐位相與,結果是相與之後的結果。
3、用途上的區別
&&:x&&y——功能描述: 「條件與」:x和y均為true,取值是true,否則取值是false。&&需要兩個操作數的值都是true時,才取值true,但是兩個操作符還是有區別的:使用方法是int&& rx=x。
&:是一個位運算符。參加運算的兩個數的二進制形式,每一個二進制位進行」與「運算,最後的結果二進製作為結果,例如:3 & 5=1,因為3和5的二進制分別是0011、0101,兩個進行與運算的結果是0001。
⑻ php運算中a++與++a的區別。
++a跟a++都是自加,但是兩個的運算順序是不同的,所有或導致運算結果不同。
++a
在表達式中,是先執行自動加1在其他的運算,類似(++a),先執行小括弧裡面的;
a++
是先執行表達式中其他運算,再執行自加。
eg:
$a
=
0;
if(++a
){echo
"a=1";}else{echo
"a=0";}
及$a
=
0;
if(a++){echo
"a=1";}else{echo
"a=0";}
++a
的判斷
是先執行++
及
a=a+1
=1
然後在判斷表達式是否成立;
a++
的判斷是先判斷表達是否成立,在執行++
⑼ 怎麼用php編寫加減乘除
可以參考下面的代碼:
<?php
$a = 1;
$b = 2;
加法: $sum = $a + $b;
減法: $sum = $a - $b;
乘法: $sum = $a * $b;
除法: $sum = $a / $b;
(9)php與運算擴展閱讀:
PHP的加密函數有crypt()、 md5() 和sha1() 這3種, 其中crypt() 用於單向加密, 所謂的單向加密就是將需要加密的內容進行加密之後, 無法將密文轉換成為可讀的內容, 因此單向加密的應用范圍較狹窄, 一般用於用戶名認證和密碼輸入等情況。
當用戶進入系統時,只需要將密文口令輸 入,經過系統驗證與存儲的口令一致, 即可通過。
sha1() 函數使用了SHA-1的散列演算法,其原理與md5() 類似。
⑽ PHP++和+運算
首先從整體上看,兩個算式都是加法運算,
第一個是$a 和 $a++的相加,++優先順序高於+,所以先算$a++,$a變成2,所以是 2+1=3
第二個是$a 和 $a 和$a++的連加,雖然++優先順序高於+,但整體上他是一個連加式,還是從左往右計算的,相當於x+x+y,所以是1+1+1=3.
換成數學就是 x+y*z 和 w+x+y*z這樣的。