什么是運算符
什么是運算符?運算符是告訴PHP做相關運算的標識符號。例如,你需要計算123乘以456等于多少,這時候就需要一個符號,告訴服務器,你需要做乘法運算。
PHP中的運算符有哪些?PHP運算符一般分為算術運算符、賦值運算符、比較運算符、三元運算符、邏輯運算符、字符串連接運算符、錯誤控制運算符。
<?php
$a = 1;
$b = 1;
$c = $a + $b;
echo $c;
?>
//2
PHP中的算術運算符
<?php
$english = 110; //英語成績
$math= 118; //數學成績
$biological = 80; //生物成績
$physical = 90; //物理成績
$sum = $english+$math+$biological+$physical;
$avg = $sum / 4;
$x = $math - $english;
$x2 = $english * $english;
echo "總分:".$sum."<br />";
echo "平均分:".$avg."<br />";
echo "數學比英語高的分數:".$x."<br />";
echo "英語成績的平方:".$x2."<br />";
?>
//總分:398
//平均分:99.5
//數學比英語高的分數:8
//英語成績的平方:12100
PHP中的賦值運算符
PHP的賦值運算符有兩種,分別是:
(1)“=”:把右邊表達式的值賦給左邊的運算數。它將右邊表達式值復制一份,交給左邊的運算數。換而言之,首先給左邊的運算數申請了一塊內存,然后把復制的值放到這個內存中。
(2)“&”:引用賦值,意味著兩個變量都指向同一個數據。它將使兩個變量共享一塊內存,如果這個內存存儲的數據變了,那么兩個變量的值都會發生變化。
<?php
$a = "你好";
$b = $a;
$c = &$a;
$a = "大家好";
echo $b."<br />";
echo $c."<br />";
?>
//你好
//大家好
//$b是$a復制的值,之后$a怎么變,$b都不變化。$c和$a指向同一個內存,$a變化,對應內存值也變化,$c也變化。
PHP中的比較運算符
<?php
$a = 1;
$b = "1";
var_dump($a == $b);
echo "<br />";
var_dump($a === $b);
echo "<br />";
var_dump($a != $b);
echo "<br />";
var_dump($a <> $b);
echo "<br />";
var_dump($a !== $b);
echo "<br />";
var_dump($a < $b);
echo "<br />";
echo "<br />111<br />";
$c = 5;
var_dump($a < $c);
echo "<br />";
var_dump($a > $c);
echo "<br />";
var_dump($a <= $c);
echo "<br />";
var_dump($a >= $b);
echo "<br />";
var_dump($a >= $b);
echo "<br />";
?>
/*
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
111
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
*/
PHP中的三元運算符
<?php
$a = 78;//成績
$b = $a >= 60 ? "及格": "不及格";
echo $b;
?>
//及格
PHP中的邏輯運算符
邏輯運算符主用是進行邏輯運算的,例如:邏輯與、邏輯或、邏輯異或、邏輯非等
<?php
$a = TRUE; //A同意
$b = TRUE; //B同意
$c = FALSE; //C反對
$d = FALSE; //D反對
//咱順便復習下三元運算符
echo ($a and $b)?"通過":"不通過";
echo "<br />";
echo($a or $c)?"通過":"不通過";
echo "<br />";
echo ($a xor $c xor $d)?"通過":"不通過";
echo "<br />";
echo !$c?"通過":"不通過";
echo "<br />";
echo $a && $d?"通過":"不通過";
echo "<br />";
echo $b || $c || $d?"通過":"不通過";
?>
/*
通過
通過
通過
通過
不通過
通過
*/
PHP中的字符串連接運算符
字符串連接運算符是為了將兩個字符串進行連接,PHP中提供的字符串連接運算符有:
(1)連接運算符(“.”):它返回將右參數附加到左參數后面所得的字符串。
(2)連接賦值運算符(“.=”):它將右邊參數附加到左邊的參數后。
<?php
$a = "黃先生";
$tip = $a.",你好";
$b = "東邊日出西邊雨";
$b .= ",道是無晴卻有晴";
$c = "東邊日出西邊雨";
$c = $c.",道是無晴卻有晴";
echo $tip."<br />";
echo $b."<br />";
echo $c."<br />";
?>
/*
黃先生,你好
東邊日出西邊雨,道是無晴卻有晴
東邊日出西邊雨,道是無晴卻有晴
*/
PHP中的錯誤控制運算符
PHP中提供了一個錯誤控制運算符“@”,對于一些可能會在運行過程中出錯的表達式時,我們不希望出錯的時候給客戶顯示錯誤信息,這樣對用戶不友好。于是,可以將@放置在一個PHP表達式之前,該表達式可能產生的任何錯誤信息都被忽略掉;
如果激活了track_error(這個玩意在php.ini中設置)特性,表達式所產生的任何錯誤信息都被存放在變量$php_errormsg中,此變量在每次出錯時都會被覆蓋,所以如果想用它的話必須盡早檢查。
需要注意的是:錯誤控制前綴“@”不會屏蔽解析錯誤的信息,不能把它放在函數或類的定義之前,也不能用于條件結構例如if和foreach等。
<?php
$conn = @mysql_connect("localhost","username","password");
echo "出錯了,錯誤原因是:".$php_errormsg;
?>
/*
Notice: Undefined variable: php_errormsg in D:\phpStudy\WWW\php_Introduction\index.php on line 10
出錯了,錯誤原因是:
*/
PHP中的算術運算符(2)
取模算術符有啥用呢?
假設我們要在一個考場安排了一場考試,對考生從1開始,都進行了編號,那么怎么讓服務器幫助我們計算考生在的位置呢,進而打印考場的考生對照表呢?在右邊編輯器里輸入兩條指令,如圖所示:
<?php
$maxLine = 4; //每排人數
$no = 17;//學生編號
$line = ceil($no/$maxLine);//ceil()的作用是向上取整,以這里為例,17除以4等于4.25,所以向上取整就是5。17號的學生要坐在第五排。
$row = $no%$maxLine;
echo "編號<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>個位置";
?>
//編號17的座位在第5排第1個位置