1. 程式人生 > >PHP中常用的運算子------10

PHP中常用的運算子------10

目錄

一: 什麼是運算子

二:PHP中的算術運算子

三: PHP中的賦值運算子

四: PHP中的比較運算子

五: PHP中的三元運算子

六: PHP中的邏輯運算子

七: PHP中的字串連線運算子

八: PHP中的錯誤控制運算子

九: PHP 遞增/遞減運算子


一: 什麼是運算子

1.運算子是告訴PHP做相關運算的識別符號號。例如,你需要計算123乘以456等於多少,這時候就需要一個符號,告訴伺服器,你需要做乘法運算;

2.PHP中的運算子有哪些?PHP運算子一般分為算術運算子、賦值運算子、比較運算子、三元運算子、邏輯運算子、字串連線運算子、錯誤控制運算子

3.eg:

<?php 
$a = 1;
$b = 1;
$c = $a + $b;
echo $c; //2
?>

二:PHP中的算術運算子

1. 算術運算子主要是用於進行算術運算的,例如:加法運算、減法運算、乘法運算、除法運算;

2.在PHP中的常用的算術運算子對應下表:

PHP算術運算子
算術運算子 名稱 示例 結果 舉例
+ 加法 $a + $b $a和$b的和 3+4=7
- 減法 $a - $b $a和$b的差 6-4=2
* 乘法 $a*$b $a和$b的積 3*7=21
/ 除法 $a/$b $a和$b的商 8/2=4
% 取模 $a%$b $a除以$b的餘數 6%3=0

 

 

 

 

 

 

 

 注意:大模小取餘數,小模大取小;

3.eg:

<?php 
$english = 110; //英語成績
$math= 118; //數學成績
$biological = 80; //生物成績
$physical = 90; //物理成績
$sum = $english+$math+$biological+$physical; //總分
$avg = $sum / 4; //平均分
$x = $math - $english; //計算數學比英語高几分
$x2 = $english * $english;//學習下乘法的計算方法
$x3 = 7%3; //大模小取餘
$x4 = 6%7; //小模大取小
echo "總分:".$sum."<br />";
echo "平均分:".$avg."<br />";
echo "數學比英語高的分數:".$x."<br />";
echo "英語成績的平方:".$x2."<br />";
echo $x3."<br />";
echo $x4."<br />";

效果:

總分:398
平均分:99.5
數學比英語高的分數:8
英語成績的平方:12100
1
6

4.取模算術符有啥用呢

   假設我們要在一個考場安排了一場考試,對考生從1開始,都進行了編號,那麼怎麼讓伺服器幫助我們計算考生在的位置呢,進而列印考場的考生對照表呢?

<?php 
$maxLine = 4; //每排人數
$no = 17;//學生編號
$line = ceil($no/$maxLine);
$row = $no%$maxLine?$no%$maxLine:$maxLine;	
echo "編號<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>個位置";
//編號17的座位在第5排第1個位置
?>

三: PHP中的賦值運算子

=>PHP的賦值運算子有兩種,分別是

1.“=”:把右邊表示式的值賦給左邊的運算數。它將右邊表示式值複製一份,交給左邊的運算數。換而言之,首先給左邊的運算數申請了一塊記憶體,然後把複製的值放到這個記憶體中;

賦值 等同於 描述
x = y x = y 右側表示式為左側運算數設定值。
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y 模數
<?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
?>

2.“&”:引用賦值意味著兩個變數都指向同一個資料。它將使兩個變數共享一塊記憶體,如果這個記憶體儲存的資料變了,那麼兩個變數的值都會發生變化

<?php 
    $a = "我在慕課網學習PHP!";
	$b = $a;
	$c = &$a;
	$a = "我天天在慕課網學習PHP!";
	echo $b."<br />"; //輸出: 我在慕課網學習PHP!
	echo $c."<br />"; //輸出: 我天天在慕課網學習PHP!
?>

  注意: 此處$b在$a改變前已經賦值了,不改變,$c和$a是引用賦值關係,兩個一同改變;

四: PHP中的比較運算子

1.比較運算子主要是用於進行比較運算的,例如:等於、全等、不等、大於、小於。

2.在PHP中常用的比較運算子如下表:

運算子 名稱 例子 結果
== 等於 $x == $y 如果 $x 等於 $y,則返回 true。
=== 全等(完全相同) $x === $y 如果 $x 等於 $y,且它們型別相同,則返回 true。
!= 不等於 $x != $y 如果 $x 不等於 $y,則返回 true。
<> 不等於 $x <> $y 如果 $x 不等於 $y,則返回 true。
!== 不全等(完全不同) $x !== $y 如果 $x 不等於 $y,或它們型別不相同,則返回 true。
> 大於 $x > $y 如果 $x 大於 $y,則返回 true。
< 小於 $x < $y 如果 $x 小於 $y,則返回 true。
>= 大於或等於 $x >= $y 如果 $x 大於或者等於 $y,則返回 true.
<= 小於或等於 $x <= $y 如果 $x 小於或者等於 $y,則返回 true。

3.eg:

<?php
$x=100; 
$y="100";

var_dump($x == $y); //bool(true) 
echo "<br>";
var_dump($x === $y); //bool(false) 
echo "<br>";
var_dump($x != $y); //bool(false) 
echo "<br>";
var_dump($x !== $y); //bool(true) 
echo "<br>";

$a=50;
$b=90;

var_dump($a > $b); //bool(false) 
echo "<br>";
var_dump($a < $b); //bool(true)
?>

五: PHP中的三元運算子

1. (“?:”)三元運算子也是一個比較運算子,對於表示式(expr1)?(expr2):(expr3),如果expr1的值為true,則此表示式的值為expr2,否則為expr3

2.eg:

<?php 
    $a = 78;//成績
	$b = $a >= 60 ? "及格": "不及格"; 
	echo $b;  //頁面輸出: 及格
?>

六: PHP中的邏輯運算子

1.邏輯運算子主用是進行邏輯運算的,例如:邏輯與、邏輯或、邏輯異或、邏輯非等;

2.在PHP中常用的邏輯運算子如下表:

運算子 名稱 例子 結果
and $x and $y 如果 $x 和 $y 都為 true,則返回 true。
or $x or $y 如果 $x 和 $y 至少有一個為 true,則返回 true。
xor 異或 $x xor $y 如果 $x 和 $y 有且僅有一個為 true,則返回 true。
&& $x && $y 如果 $x 和 $y 都為 true,則返回 true。
|| $x || $y 如果 $x 和 $y 至少有一個為 true,則返回 true。
! !$x 如果 $x 不為 true,則返回 true。

3.我們可以從投票的角度來理解邏輯運算:

  • 邏輯與:要求所有人都投票同意,才會通過某協議;
  • 邏輯或:只要求一個人投票同意就行;
  • 邏輯異或:只能有且只能有一個人投票同意;
  • 邏輯非:某個人要反對,但是通過邏輯非,使其反對無效;

七: PHP中的字串連線運算子

=>字串連線運算子是為了將兩個字串進行連線,PHP中提供的字串連線運算子有

  • 連線運算子(“.”):它返回將右引數附加到左引數後面所得的字串。
  • 連線賦值運算子(“.=”):它將右邊引數附加到左邊的引數後。
運算子 名稱 例子 結果
. 串接 $txt1 = "Hello" $txt2 = $txt1 . " world!" 現在 $txt2 包含 "Hello world!"
.= 串接賦值 $txt1 = "Hello" $txt1 .= " world!" 現在 $txt1 包含 "Hello world!"

eg:

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

$x="Hello";
$x .= " world!";
echo $x; // 輸出 Hello world!
?>

八: PHP中的錯誤控制運算子

1.PHP中提供了一個錯誤控制運算子“@”,對於一些可能會在執行過程中出錯的表示式時,我們不希望出錯的時候給客戶顯示錯誤資訊,這樣對使用者不友好。於是,可以將@放置在一個PHP表示式之前,該表示式可能產生的任何錯誤資訊都被忽略掉;

2.如果激活了track_error(這個玩意在php.ini中設定)特性,表示式所產生的任何錯誤資訊都被存放在變數$php_errormsg中,此變數在每次出錯時都會被覆蓋,所以如果想用它的話必須儘早檢查。

3.需要注意的是:錯誤控制字首“@”不會遮蔽解析錯誤的資訊,不能把它放在函式或類的定義之前,也不能用於條件結構例如if和foreach等。

4.eg:不含錯誤控制運算子“@”的錯誤提示

<?php  
 $conn = mysql_connect("localhost","username","password");
 echo "出錯了,錯誤原因是:".$php_errormsg;
?>

效果:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\wwwroot\test\Ajax.php on line 2

Warning: mysql_connect(): Access denied for user 'username'@'localhost' (using password: YES) in D:\wwwroot\test\Ajax.php on line 2
出錯了,錯誤原因是:mysql_connect(): Access denied for user 'username'@'localhost' (using password: YES)

5.eg:含錯誤控制運算子“@”

<?php  
 $conn = @mysql_connect("localhost","username","password");
 echo "出錯了,錯誤原因是:".$php_errormsg;
?>

效果:

出錯了,錯誤原因是:mysql_connect(): Access denied for user 'username'@'localhost' (using password: YES)

九: PHP 遞增/遞減運算子

運算子 名稱 描述
++$x 前遞增 $x 加一遞增,然後返回 $x
$x++ 後遞增 返回 $x,然後 $x 加一遞增
--$x 前遞減 $x 減一遞減,然後返回 $x
$x-- 後遞減 返回 $x,然後 $x 減一遞減

eg:

<?php
$x=10; 
echo ++$x; // $x 加一遞增,然後返回 $x, 輸出 11 
echo "<br />";
echo $x; //輸出11
echo "<br />";

$y=10; 
echo $y++; //返回 $x,然後 $x 加一遞增,  輸出 10
echo "<br />";
echo $y; //輸出11
echo "<br />";

$z=5;
echo --$z; // $x 減一遞減,然後返回 $x, 輸出 4
echo "<br />";
echo $z; //輸出4
echo "<br />";

$i=5;
echo $i--; // 返回 $x,然後 $x 減一遞減,輸出 5
echo "<br />";
echo $i; //輸出4
?>