php二元運算符
Ⅰ 在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中的運算符有哪些
A選項,看下圖:
不用全部記住,記住平時比較常用的就行了,還有記住:算術運算符>關系運算符>邏輯運算符>賦值運算符。
(2)php二元運算符擴展閱讀:
PHP 中的運算符分為:四則運算符、邏輯運算符、三目運算符和位運算符。
運算符優先順序指定了兩個表達式綁定得有多「緊密」。例如,表達式 1 + 5 * 3 的結果是 16 而不是 18 是因為乘號(「*」)的優先順序比加號(「+」)高。
必要時可握棗以用括弧來強制改變優先順序。例如:(1 + 5) * 3 的值為 18。如果運算符優先順序相同,則使用從左到右的左聯順序。
對字元串和數字進褲皮慎行加胡敬法運算。
請看這些例子:
x = 5 + 5; document.write(x); x = "5" + "5"; document.write(x); x = 5 + "5"; document.write(x); x = "5" + 5; document.write(x)。
x = 5 + 5; document.write(x); x = "5" + "5"; document.write(x); x = 5 + "5"; document.write(x); x = "5" + 5; document.write(x)。
Ⅲ PHP語言PHP語言里的位運算符&、|、^ 、~、〈〈 、〉〉這些符號我一個也不懂,希望高手給個全面的解釋!拜
"&" 按位與運算
按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下:
00001001 (9的二進制補碼)
&00000101 (5的二進制補碼)
00000001 (1的二進制補碼)
<?php
$a = 9;
$b = 5;
echo sprintf("%b", $a&$b);
?>
"|" 按位或運算
按位或運算符「|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。
例如:9|5可寫算式如下:
00001001
|00000101
00001101 (十進制為13)可見9|5=13
<?php
$a = 9;
$b = 5;
echo sprintf("%b", $a|$b)."\n"; //二進制
echo sprintf("%d", $a|$b)."\n"; //十進制
"^" 按位異或運算
按位異或運算符「^」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如9^5可寫成算式如下:
00001001
^00000101
00001100 (十進制為12)
<?php
$a = 9;
$b = 5;
echo sprintf("%b", $a^$b)."\n"; //二進制
echo sprintf("%d", $a^$b)."\n"; //十進制
"~" 求反運算
求反運算符~為單目運算符,具有右結合性。其功能是對參與運算的數的各二進位按位求反。
例如~9的運算為:
~(0000000000001001)結果為:1111111111110110
<?php
$a = 9;
$b = 5;
echo sprintf("%b", ~$a)."\n"; //二進制
"〈〈" 左移運算
左移運算符「<<」是雙目運算符。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,高位丟棄,低位補0。
例如:
a<<4
指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位後為00110000(十進制48)。
<?php
$a = 3;
$temp = $a<<4;
echo sprintf("%d", $temp)."\n"; //十進制
「>>」 右移運算
右移運算符「>>」是雙目運算符。其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。
例如:
設 a=48,
a>>4
表示把00110000右移為00000011(十進制3)。
應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定
<?php
$a = 48;
$temp = $a>>4;
echo sprintf("%d", $temp)."\n"; //十進制
Ⅳ php中!==運算符是什麼意思
PHP中「?:」指的是三目運算符。
三目運算符,也稱為條件運算符,它是計算機語言的重要組成部分。它是唯一具有3個操作數的運算符,因此有時稱為三元運算符。通常,三目運算元的組合是右邊界。
三目運算符提供了一種表達簡單if-else語句的簡便方法。運算符由以下格式的問號(?)和冒號(:)組成:表達式?表達式:表達式;一條語句稱為條件表達式,由3個子表達式組成,並使用問號?和冒號:分開。
條件表達式中問號之前的部分是要測試的條件。這就像if語句括弧中的表達式。如果條件為真,則執行?之間的語句。和:;否則,執行以下部分。如果您認為有幫助,可以在子表達式兩邊加上括弧
(4)php二元運算符擴展閱讀:
<php>函數的操作規則
1、對於條件表達式b? x:y,首先計算條件b,然後判斷。如果b的值為true,則計算x的值,並且運算的結果為x的值;否則,計算出y的值,並且運算的結果是y的值。
2、條件表達式永遠不會同時計算x和y。條件運算符是右關聯的,即從右到左分組。例如,一個? b:c? d:e將被執行為? b:(c→d:e)。
3、可以理解為:條件?結果1:結果2,在裡面?該數字是格式要求。也可以理解為條件是否為真,條件成立為結果1,否則為結果2。