php運算符

PHP 運算子

本章節我們將討論 PHP 中不同運算子的應用。

在 PHP 中,賦值運算子 = 用來給變數賦值。

在 PHP 中,算術運算子 + 用來把值加在一起。

PHP 算術運算子

QQ截图20161008141737.png

#以下實例示範了使用不同算術運算子得到的不同結果:

實例

<?php  $x=10;  $y=6; echo ($x + $y); // 输出16 echo ($x - $y); // 输出4 echo ($x * $y); // 输出60 echo ($x / $y); // 输出1.6666666666667  echo ($x % $y); // 输出4  ?>
PHP7+ 版本新增整除运算符 intdiv(),使用实例:
<?php
var_dump(intdiv(10, 3));
?>

以上實例會輸出:

int(3)

PHP 賦值運算子

在PHP 中,基本的賦值運算子是"="。它意味著左操作數被設定為右側表達式的值。也就是說,"$x = 5" 的值是 5。


   QQ截图20161008141819.png

下列實例示範了使用不同賦值運算子所得到的不同結果:

實例

<?php 
 $x=10; 
 echo $x; // 输出10
 
 $y=20; 
 $y += 100;
 echo $y; // 输出120
 
 $z=50;
 $z -= 25;
 echo $z; // 输出25
 
 $i=5;
 $i *= 6;
 echo $i; // 输出30
 
 $j=10;
 $j /= 5;
 echo $j; // 输出2
 
 $k=15;
 $k %= 4;
 echo $k; // 输出3
 ?>

以下實例示範了使用不同字串運算子得到的不同結果:

實例

<?php
 $a = "Hello";
 $b = $a . " world!";
 echo $b; // 输出Hello world! 
 
 $x="Hello";
 $x .= " world!";
 echo $x; // 输出Hello world! 
 ?>

QQ截图20161008141846.png

以下實例示範了使用遞增/遞減運算符得到的結果:

實例

<?php
 $x=10; 
 echo ++$x; // 输出11
 
 $y=10; 
 echo $y++; // 输出10
 
 $z=5;
 echo --$z; // 输出4
 
 $i=5;
 echo $i--; // 输出5
 ?>

PHP 比較運算子

##比較運算子可以讓您比較兩個值:

QQ截图20161008141904.png

以下實例示範了使用一些比較運算子得到的不同結果:

實例

<?php
 $x=100; 
 $y="100";
 
 var_dump($x == $y);
 echo "<br>";
 var_dump($x === $y);
 echo "<br>";
 var_dump($x != $y);
 echo "<br>";
 var_dump($x !== $y);
 echo "<br>";
 
 $a=50;
 $b=90;
 
 var_dump($a > $b);
 echo "<br>";
 var_dump($a < $b);
 ?>

PHP 邏輯運算子

QQ截图20161008141927.png

QQ截图20161008141956.png

QQ截图20161008142019.png

以下實例示範了使用一些陣列運算子得到的不同結果:

實例

<?php
 $x = array("a" => "red", "b" => "green"); 
 $y = array("c" => "blue", "d" => "yellow"); 
 $z = $x + $y; // $x 和 $y 数组合并
 var_dump($z);
 var_dump($x == $y);
 var_dump($x === $y);
 var_dump($x != $y);
 var_dump($x <> $y);
 var_dump($x !== $y);
 ?>

三元運算子

另一個條件運算子是"?:"(或三元)運算子。

語法格式

(expr1) ? (expr2) : (expr3)

對expr1 求值為TRUE 時的值為expr2,在expr1 求值為FALSE 時的值為expr3。

自 PHP 5.3 起,可以省略三元運算子中間那部分。表達式 expr1 ?: expr3 在 expr1 求值為 TRUE 時傳回 expr1,否則回傳 expr3。

實例

以下實例中透過判斷$_GET 請求中含有user 值,如果有回傳$_GET['user'],否則傳回nobody:

<?php
$test = 'php中文网';
// 普通写法
$username = isset($test) ? $test : 'nobody';
echo $username, PHP_EOL;
 
// PHP 5.3+ 版本写法
$username = $test ?: 'nobody';
echo $username, PHP_EOL;
?>

php中文網

注意:PHP_EOL 是一個換行符,相容於更大平台。

在PHP7+ 版本多了一個NULL 合併運算符,實例如下:

<?php

// 如果$_GET['user'] 不存在回傳'nobody',否則回傳$_GET['user'] 的值

$username = $_GET['user'] ?? 'nobody';

// 類似的三元運算子

$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

?>

組合比較符(PHP7+)

PHP7+ 支援組合比較符,實例如下:

<?php
// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
 
// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

PHP的運算符號

運算元    運算子    運算元

## 1           +        ,    =   ==  ===

##三元運算子  1  ?   :   3

#算術運算子  +   -  *   /   %  ++  --

## 值運算

#比較運算符號  >   <   ==  >=  <=  ===  !=   !==

#位元運算子   &&  || |  ^   ~  >>  <<

其他原算子   ? :  @   ->   =>

 PHP的算術運算子

+   php中的+號只做運算##   無特別處

/    除數不能為0  

%(求模)   小數不做求模  php自動將小數轉成整數求模,負數決定第一個數

+ +  (自增)

$a=5

$a++   先用在加上

++$a   先加在用

<?php
     $a=5;
     //5         7
     $b=$a++  +  ++$a;
     echo $b;
     echo '<br>';
     echo $a;
 ?>

-- (自減)

$a=5

$a--   先用在加上

--$a   先加在用

<?php
     $a=5;
    
     $b=$a--  -  --$a; 
     echo $b;   //2   echo '<br>';
     echo $a;//3>

 

PHP的賦值運算子

基本的賦值運算子是「=」。一開始可能會以為它是“等於”,其實不是的。它實際上意味著把右邊表達式的值賦給左邊的運算數。

賦值運算式的值也就是所賦得的值。也就是說,「$a = 3」的值是 3。這樣就可以做些小技巧: <?php

$a = ($b = 4) + 5; // $a 現在變成 9,而 $b 則變成了 4。


PHP的比較運算子

1.比較後的結果是一個boolean值,用在if和while等語句中

#4>3 true

==

===全等,不僅內容要相同,而且兩個運算元的型別也要相等.

<?PHP
         $a = 7.00;
         $b= 7;
    var_dump($a===$b);
 
?>

能看出區別。

<?PHP
         $a = 7.00;
         $b= 7;
    var_dump($a==$b);
 
?>

PHP的邏輯運算子

特性:短路

##&&   and 

||   or

範例:$a = 1;         $a==1 || $c = 100; //邏輯或的運算結果是運算子(||)的兩邊只要有一個為真,結果就回傳「真」後來就不再執行其它表達式,所以在這個語句裡已經判斷到$a的返回值是“真”,就不再執行給$c賦值,這樣就形成了一個短路現象,所以後面的輸出語句不輸出內容。

$a==2 && $c=100; //邏輯與的運算子(&&),邏輯與的運算方式是運算子的兩邊表達式都為「真」才會繼續執行其他語句而直接回傳一個「假」值,所以這條語句也會不會執行$c的賦值。        

echo '$c的值:'.$c;


PHP的三元運算子

運算元  ?  運算元  :運算元

條件  ? 語句 :  語句

條件 ? 表達式 : 表達式

一!二:三

如果"一"的條件如果成立,則指向"二",否則執行"三"

$a =8 ;

$sun   =  false ?  $a +5+6 :"00000000";

echo $sun;

繼續學習
||
<?php $x=10; echo $x; // 输出10 $y=20; $y += 100; echo $y; // 输出120 $z=50; $z -= 25; echo $z; // 输出25 $i=5; $i *= 6; echo $i; // 输出30 $j=10; $j /= 5; echo $j; // 输出2 $k=15; $k %= 4; echo $k; // 输出3 ?>