PHP中常用的運算子------10
目錄
一: 什麼是運算子
1.運算子是告訴PHP做相關運算的識別符號號。例如,你需要計算123乘以456等於多少,這時候就需要一個符號,告訴伺服器,你需要做乘法運算;
2.PHP中的運算子有哪些?PHP運算子一般分為算術運算子、賦值運算子、比較運算子、三元運算子、邏輯運算子、字串連線運算子、錯誤控制運算子
3.eg:
<?php
$a = 1;
$b = 1;
$c = $a + $b;
echo $c; //2
?>
二:PHP中的算術運算子
1. 算術運算子主要是用於進行算術運算的,例如:加法運算、減法運算、乘法運算、除法運算;
2.在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
?>