移至主內容
網頁技術
首頁  >  網頁技術目錄  >  PHP的運算子

PHP的運算子

2021/8/5 , 由 Wanding 編寫發布
分類:

運算式由運算元和運算子組成。運算元是常數、變數或函數;而運算子就是運算符號,如+ - * /等。

以一條指定運算式給變數的程式敘述來說明,如下列:

運算式

 

在PHP程式語法中,一些計算和判斷會常常用到,所以一定會用到運算子計算。運算子分成下列幾種,接下來分別介紹:

 

1. 算術運算子

就是一般熟悉的加減乘除運算,如下表:

運算子意義範例運算結果
+加法4+913
-減法15-78
*乘法5*1260
/除法9/33
%取餘數66%51

 

程式說明

<?php
    $addition = 7+3;             //加法
    $subtraction = 7-3;          //減法
    $multiplication = 7*3;       //乘法
    $division = 7/3;             //除法
    $remainder = 7%3             //取餘數

    echo "\$addition = $addition <br>";
    echo "\$subtraction = $subtraction <br>";
    echo "\$multiplication = $multiplication <br>";
    echo "\$division = $division <br>";
    echo "\$remainder = $remainder";
?>

執行結果

$addition = 10
$subtraction = 4
$multiplication = 2.3333333333333
$remainder = 1

 

 

2. 遞增與遞減運算子

遞增與遞減運算子即是一個變數的值會隨著執行次數持續加1或減1,如下表所示:

運算子意義範例($a=6)運算結果
++遞增$a++$a=7
--遞減$a--$a=5

 

程式說明

<?php
    $ascending = 3;
    echo "\$ascending = $ascending <br>";
    $ascending++;       //遞增
    echo "\$ascending++ = $ascending <br>";
    $ascending++;       //遞增
    echo "\$ascending++ = $ascending <br>";
    $decreasing = 2;
    echo "\$decreasing = $decreasing <br>";
    $decreasing--;      //遞減
    echo "\$decreasing-- = $decreasing <br>";
    $decreasing--;      //遞減
    echo "\$decreasing-- = $decreasing <br>"
?>

執行結果

$ascending= 3
$ascending++= 4
$ascending++=5
$decreasing = 2
$decreasing--= 1
$decreasing--= 0

 

 

3.指定運算子與複合運算子

指定運算子[ = ] 即是指定數值或運算式給某一變數,換句話說,我們可以用指定運算子來改變變數的值。指定運算子可以配合算術運算子來建立複合運算子,以有效簡化運算式,如下表所示:

運算子意義範例運算拆解
=指定數值到變數內$a=10$a=10
+=變數與數值相加$a+=20$a=$a+20
-=變數與數值相減$a-=30$a=$a-30
*=變數與數值相乘$a*=40$a=$a*40
/=變數與數值相除$a/=50$a=$a/50
%=變數與數值相取餘數$a%=60$a=4a%60
.=變數與字串串接$a.=70$a=$a.70
<<=左移 x 位元$a<<=1$a=$a<<1
>>=右移 x 位元$a>>=2$a=$a>>2
&=相互位元 and 運算$a&=$b$a=$a & $b
|=相互位元 or 運算$a |=$b$a=$a | $b
^=相互位元  xor 運算$a^=$b$a=$a ^ $b

 

程式說明

<?php
    $number = 3;            //指定數值到變數內
    echo "\$number = $number <br>";
    $number += 4;           //數字相加
    echo "\$number += 4 --> \$number = $number <br>";
    $number <<= 2;          //左移2位元
    echo "$number <<=2 --> \$number = $number <br>";
    $number &= 3;           //相互位元and運算
    echo "|$number &= 3 --> \$number = $number <br>";
    $number .= "~Hello";    //串接字串
    echo "\$number .= \"~Hello\"--> \$number = $number <br>";
?>

執行結果

$number=3
$number +=4 --> $number= 7
$number <<=2 -->$number=28
$number &=3 --> $number= 0
$number .="~Hello" -->$number=0~Hello

 

 

4. 比較運算子

比較運算子用於對兩運算元進行比較判斷,通常會與條件敘述配合使用,可依據不同情況執行不同運算式。常用的必較運算子如下表所示:

運算子意義範例($a=3,$b=5)運算結果
= =等於$a= = $bfalse
= = =全等於$a= = = $bfalse
!=不等於$a!=$btrue
<>不等於$a<>$btrue
!==非等於$a!==$btrue
>大於$a>$bfalse
<小於$a<$btrue
>=大於等於$a>=$bfalse
<=小於等於$a<=$Btrue

 

程式說明

<?php
$number1 = 3;   $number2 = 5;
    if ($number1 == $number2) {
        echo "\$number1 == \$number2 成立 <br>";    
    }else {
        echo "\$number1 == \$number2 不成立 <br>";
    }
    if ($number1 !== $number2) {
        echo "\$number1 !== \$number2 成立 <br>";    
    }else {
        echo "\$number1 !== \$number2 不成立 <br>";
    }
    if ($number1 >= $number2) {
        echo "\$number1 >= \$number2 成立 <br>";
    }else {
        echo "\$number1 >= \$number2 不成立 <br>";
    }
?>

執行結果

$number1 == $number2 不成立
$number1 !== $number2 成立
$number1 >= $number2 不成立

 

 

5. 邏輯運算子

邏輯運算子即是判斷其兩個變數、常數或運算式的布林直。常用的邏輯運算子如下表所示:

運算子意義範例($a=true $b=false)運算結果
&&(and)條件 and 運算$a && $b ($a and $b)false
||(or)條件 or 運算$a || $b ($a or $b)true
!(not)條件 not 運算!$afalse
xor條件 xor 運算$a xor $btrue

&&運算子只有當兩個運算元皆為true的情況下,其運算結果才為true

|| 運算子只要兩運算元其中之一為true,其運算結果就是true

! 運算子為一元運算子,功用為將該運算元做真假反轉

xor 運算子當兩運算元相異時,其運算結果才為true

 

程式說明

<?php
    $boolean1 = true; $boolean2 = false;
    if ($boolean1 && $boolean2) {
        echo "\$boolean1 && \$boolean2 成立 <br>";
    }else {
        echo "\$boolean1 && \$boolean2 不成立 <br>";
    }
    if ($boolean1 || $boolean2) {
        echo "\$boolean1 || \$boolean2 成立 <br>";
    }else {
        echo "\$boolean1 || \$boolean2 不成立 <br>";
    }
    if ($boolean1 xor $boolean2) {
        echo "\$boolean1 xor \$boolean2 成立 <br>";
    }else {
        echo "\$boolean1 xor \$boolean2 不成立 <br>";
    }
?>

執行結果

$boolean1 && $boolean2 不成立
$boolean1 || $boolean2 成立
$boolean1 xor $boolean2 成立

 

 

6. 位元運算子

位元運算子即是進行二位元運算。舉例來說,$a=6 , $b=3

運算子意義範例運算結果
&位元 AND 運算$a&$b2
|位元 OR 運算$a|$b7
^位元 XOR 運算$a^$b5
~位元 NOT 運算~$a-7
<<位元左移$a<<224
>>位元右移$a>>13

 

程式說明

<?php
    $number1 = 6; $number2 = 3;
    echo "\$number1 & \$number2 = ";
    echo ($number1 & $number2);          //AND運算
    echo "<br>";
    echo "\$number1 | \$number2 = ";
    echo ($number1 | $number2);          //OR運算
    echo "<br>";
    echo "\$number1 ^ \$number2 = ";
    echo ($number1 ^ $number2);          //XOR運算
    echo "<br>";
    echo "~\$number1 = ";
    echo ~$number1;                      //NOT運算
    echo "<br>";
    echo "\$number1 << \$number2 = ";
    echo ($number1 << $number2);         //左移
    echo "<br>";
    echo "\$number1 >> \$number2 = ";
    echo ($number1 >> $number2);         //右移
?>

執行結果

$number1 & $number2 = 2
$number1 | $number2 = 7
$number1 ^ $number2 = 5
~$number1 = -7
$number1 << $number2 = 48
$number1 >> $number2 = 0

 

 

7.  字串連接運算子

字串連接運算子即是用來做字連結使用。

運算子意義範例運算結果
.字串連接"AB"."CD""ABCD"

 

程式說明:

<?php
    echo "Hello"."World"."!";     //字串連接
?>

執行結果

Hello World!

 

 

8. 運算子優先順序

PHP上的運算子非常多種,為了確保在有多個運算子的運算式能夠得到相同的結果,運算子便有所謂的計算優先順序。就如同[先乘除後加減] 的規則一般。下列表格說明PHP的運算子的優先順序

優先運算子說明
()括號
! 、~、 ++、 --邏輯與位元NOT運算、遞增遞減運算
*  、/ 、 %乘法、除法、取餘數運算
+、 -加法、減法、字串連接運算
<< 、 >>位元左移、位元右移運算
> 、 >= 、 < 、 <=大於、大於等於、小於、小於等於運算
== 、  != 、 ===等於、不等於、全等於運算
& 、 | 、  ^ 、  ~位元AND、OR、XOR、NOT運算
&& 、 ||邏輯 AND、OR運算
=指定運算
網頁技術
首頁  >  網頁技術目錄  >  PHP的運算子

PHP的運算子

2021/8/5 , 由 Wanding 編寫發布

運算式由運算元和運算子組成。運算元是常數、變數或函數;而運算子就是運算符號,如+ - * /等。

以一條指定運算式給變數的程式敘述來說明,如下列:

運算式

 

在PHP程式語法中,一些計算和判斷會常常用到,所以一定會用到運算子計算。運算子分成下列幾種,接下來分別介紹:

 

1. 算術運算子

就是一般熟悉的加減乘除運算,如下表:

運算子意義範例運算結果
+加法4+913
-減法15-78
*乘法5*1260
/除法9/33
%取餘數66%51

 

程式說明

<?php
    $addition = 7+3;             //加法
    $subtraction = 7-3;          //減法
    $multiplication = 7*3;       //乘法
    $division = 7/3;             //除法
    $remainder = 7%3             //取餘數

    echo "\$addition = $addition <br>";
    echo "\$subtraction = $subtraction <br>";
    echo "\$multiplication = $multiplication <br>";
    echo "\$division = $division <br>";
    echo "\$remainder = $remainder";
?>

執行結果

$addition = 10
$subtraction = 4
$multiplication = 2.3333333333333
$remainder = 1

 

 

2. 遞增與遞減運算子

遞增與遞減運算子即是一個變數的值會隨著執行次數持續加1或減1,如下表所示:

運算子意義範例($a=6)運算結果
++遞增$a++$a=7
--遞減$a--$a=5

 

程式說明

<?php
    $ascending = 3;
    echo "\$ascending = $ascending <br>";
    $ascending++;       //遞增
    echo "\$ascending++ = $ascending <br>";
    $ascending++;       //遞增
    echo "\$ascending++ = $ascending <br>";
    $decreasing = 2;
    echo "\$decreasing = $decreasing <br>";
    $decreasing--;      //遞減
    echo "\$decreasing-- = $decreasing <br>";
    $decreasing--;      //遞減
    echo "\$decreasing-- = $decreasing <br>"
?>

執行結果

$ascending= 3
$ascending++= 4
$ascending++=5
$decreasing = 2
$decreasing--= 1
$decreasing--= 0

 

 

3.指定運算子與複合運算子

指定運算子[ = ] 即是指定數值或運算式給某一變數,換句話說,我們可以用指定運算子來改變變數的值。指定運算子可以配合算術運算子來建立複合運算子,以有效簡化運算式,如下表所示:

運算子意義範例運算拆解
=指定數值到變數內$a=10$a=10
+=變數與數值相加$a+=20$a=$a+20
-=變數與數值相減$a-=30$a=$a-30
*=變數與數值相乘$a*=40$a=$a*40
/=變數與數值相除$a/=50$a=$a/50
%=變數與數值相取餘數$a%=60$a=4a%60
.=變數與字串串接$a.=70$a=$a.70
<<=左移 x 位元$a<<=1$a=$a<<1
>>=右移 x 位元$a>>=2$a=$a>>2
&=相互位元 and 運算$a&=$b$a=$a & $b
|=相互位元 or 運算$a |=$b$a=$a | $b
^=相互位元  xor 運算$a^=$b$a=$a ^ $b

 

程式說明

<?php
    $number = 3;            //指定數值到變數內
    echo "\$number = $number <br>";
    $number += 4;           //數字相加
    echo "\$number += 4 --> \$number = $number <br>";
    $number <<= 2;          //左移2位元
    echo "$number <<=2 --> \$number = $number <br>";
    $number &= 3;           //相互位元and運算
    echo "|$number &= 3 --> \$number = $number <br>";
    $number .= "~Hello";    //串接字串
    echo "\$number .= \"~Hello\"--> \$number = $number <br>";
?>

執行結果

$number=3
$number +=4 --> $number= 7
$number <<=2 -->$number=28
$number &=3 --> $number= 0
$number .="~Hello" -->$number=0~Hello

 

 

4. 比較運算子

比較運算子用於對兩運算元進行比較判斷,通常會與條件敘述配合使用,可依據不同情況執行不同運算式。常用的必較運算子如下表所示:

運算子意義範例($a=3,$b=5)運算結果
= =等於$a= = $bfalse
= = =全等於$a= = = $bfalse
!=不等於$a!=$btrue
<>不等於$a<>$btrue
!==非等於$a!==$btrue
>大於$a>$bfalse
<小於$a<$btrue
>=大於等於$a>=$bfalse
<=小於等於$a<=$Btrue

 

程式說明

<?php
$number1 = 3;   $number2 = 5;
    if ($number1 == $number2) {
        echo "\$number1 == \$number2 成立 <br>";    
    }else {
        echo "\$number1 == \$number2 不成立 <br>";
    }
    if ($number1 !== $number2) {
        echo "\$number1 !== \$number2 成立 <br>";    
    }else {
        echo "\$number1 !== \$number2 不成立 <br>";
    }
    if ($number1 >= $number2) {
        echo "\$number1 >= \$number2 成立 <br>";
    }else {
        echo "\$number1 >= \$number2 不成立 <br>";
    }
?>

執行結果

$number1 == $number2 不成立
$number1 !== $number2 成立
$number1 >= $number2 不成立

 

 

5. 邏輯運算子

邏輯運算子即是判斷其兩個變數、常數或運算式的布林直。常用的邏輯運算子如下表所示:

運算子意義範例($a=true $b=false)運算結果
&&(and)條件 and 運算$a && $b ($a and $b)false
||(or)條件 or 運算$a || $b ($a or $b)true
!(not)條件 not 運算!$afalse
xor條件 xor 運算$a xor $btrue

&&運算子只有當兩個運算元皆為true的情況下,其運算結果才為true

|| 運算子只要兩運算元其中之一為true,其運算結果就是true

! 運算子為一元運算子,功用為將該運算元做真假反轉

xor 運算子當兩運算元相異時,其運算結果才為true

 

程式說明

<?php
    $boolean1 = true; $boolean2 = false;
    if ($boolean1 && $boolean2) {
        echo "\$boolean1 && \$boolean2 成立 <br>";
    }else {
        echo "\$boolean1 && \$boolean2 不成立 <br>";
    }
    if ($boolean1 || $boolean2) {
        echo "\$boolean1 || \$boolean2 成立 <br>";
    }else {
        echo "\$boolean1 || \$boolean2 不成立 <br>";
    }
    if ($boolean1 xor $boolean2) {
        echo "\$boolean1 xor \$boolean2 成立 <br>";
    }else {
        echo "\$boolean1 xor \$boolean2 不成立 <br>";
    }
?>

執行結果

$boolean1 && $boolean2 不成立
$boolean1 || $boolean2 成立
$boolean1 xor $boolean2 成立

 

 

6. 位元運算子

位元運算子即是進行二位元運算。舉例來說,$a=6 , $b=3

運算子意義範例運算結果
&位元 AND 運算$a&$b2
|位元 OR 運算$a|$b7
^位元 XOR 運算$a^$b5
~位元 NOT 運算~$a-7
<<位元左移$a<<224
>>位元右移$a>>13

 

程式說明

<?php
    $number1 = 6; $number2 = 3;
    echo "\$number1 & \$number2 = ";
    echo ($number1 & $number2);          //AND運算
    echo "<br>";
    echo "\$number1 | \$number2 = ";
    echo ($number1 | $number2);          //OR運算
    echo "<br>";
    echo "\$number1 ^ \$number2 = ";
    echo ($number1 ^ $number2);          //XOR運算
    echo "<br>";
    echo "~\$number1 = ";
    echo ~$number1;                      //NOT運算
    echo "<br>";
    echo "\$number1 << \$number2 = ";
    echo ($number1 << $number2);         //左移
    echo "<br>";
    echo "\$number1 >> \$number2 = ";
    echo ($number1 >> $number2);         //右移
?>

執行結果

$number1 & $number2 = 2
$number1 | $number2 = 7
$number1 ^ $number2 = 5
~$number1 = -7
$number1 << $number2 = 48
$number1 >> $number2 = 0

 

 

7.  字串連接運算子

字串連接運算子即是用來做字連結使用。

運算子意義範例運算結果
.字串連接"AB"."CD""ABCD"

 

程式說明:

<?php
    echo "Hello"."World"."!";     //字串連接
?>

執行結果

Hello World!

 

 

8. 運算子優先順序

PHP上的運算子非常多種,為了確保在有多個運算子的運算式能夠得到相同的結果,運算子便有所謂的計算優先順序。就如同[先乘除後加減] 的規則一般。下列表格說明PHP的運算子的優先順序

優先運算子說明
()括號
! 、~、 ++、 --邏輯與位元NOT運算、遞增遞減運算
*  、/ 、 %乘法、除法、取餘數運算
+、 -加法、減法、字串連接運算
<< 、 >>位元左移、位元右移運算
> 、 >= 、 < 、 <=大於、大於等於、小於、小於等於運算
== 、  != 、 ===等於、不等於、全等於運算
& 、 | 、  ^ 、  ~位元AND、OR、XOR、NOT運算
&& 、 ||邏輯 AND、OR運算
=指定運算
返回目錄