PHP的运算符有哪些呢?
-
PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错误控制运算符。
-
算术运算符
-
算术运算符主要是用于进行算术运算的,例如:加法运算、减法运算、乘法运算、除法运算。在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 />";
运行结果
-
赋值运算符
-
PHP的赋值运算符有两种,分别是:
-
“=”:把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。
-
“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
举个代码栗
<?php
$a = "我在慕课网学习PHP!";
$b=$a;
$c=&$a; //引用两个变量共享一块内存
$a = "我天天在慕课网学习PHP!";
echo $b."<br />";
echo $c."<br />";
?>
运行结果
-
比较运算符
- 比较运算符主要是用于进行比较运算的,例如:等于、全等、不等、大于、小于。在PHP中常用的比较运算符如下表:
举个栗子
<?php
$a = 1;
$b = "1";
var_dump($a==$b);//bool(true)
echo "<br />";
var_dump($a===$b);//bool(false)
echo "<br />";
var_dump($a!=$b);//bool(false)
echo "<br />";
var_dump($a!==$b);//bool(true)
echo "<br />";
var_dump($a<>$b);//bool(false) 不相等,才true
echo "<br />";
var_dump($a<$b);//bool(false)
echo "<br />";
var_dump($a>$b);//bool(false)
echo "<br />";
var_dump($a>=$b);//bool(true)
echo "<br />";
$c = 5;
var_dump($a<$c);//bool(true)
echo "<br />";
var_dump($a>$c);//bool(false)
echo "<br />";
var_dump($a<=$c);//bool(true)
echo "<br />";
var_dump($a>=$c);//bool(false)
echo "<br />";
?>
-
三元运算符
- (“?:”)三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。
举个栗子
<?php
$a = 78;//成绩
$b=$a>=60?"及格":"不及格";//$b="及格";
echo $b;
?>
运行结果
-
逻辑运算符
-
逻辑运算符主用是进行逻辑运算的,例如:逻辑与、逻辑或、逻辑异或、逻辑非等,在PHP中常用的逻辑运算符如下表:(点击看大图)
-
逻辑异或类似于C语言中的位移或:
1xor1=0 1xor0=1 0xor0=0 1^1=0 1^0=1 0^0=0
我们可以从投票的角度来理解逻辑运算:
1、逻辑与:要求所有人都投票同意,才会通过某协议;
2、逻辑或:只要求一个人投票同意就行;
3、逻辑异或:只能有且只能有一个人投票同意;
4、逻辑非:某个人要反对,但是通过逻辑非,使其反对无效;
“与”和“或”有两种不同形式运算符的原因是它们运算的优先级(就是运算的有限顺序,比如我们小学的时候学习四则运算,加减乘除混合在一起啦,优先计算乘除,再计算加减)不同。
- 我们假设有A、B、C、D进行了投票,然后我们用逻辑运算符,来判定他们的投票是否能通过某些协议。
举个栗子
<?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 $d xor $c)?"通过":"不通过";//通过
echo "<br />";
echo (!$c)?"通过":"不通过";//通过
echo "<br />";
echo ($a && $d)?"通过":"不通过";//不通过
echo "<br />";
echo ($c || $b||$d )?"通过":"不通过";//通过
echo "<br />";
echo "----------------------";
// 不加括号
echo "<br />";
echo $a and $b?"通过":"不通过";//1
echo "<br />";
echo $a or $c ?"通过":"不通过";//1
echo "<br />";
echo $a xor $d xor $c?"通过":"不通过";//无结果
echo "<br />";
echo !$c?"通过":"不通过";//通过
echo "<br />";
echo $a&&$d?"通过":"不通过";//不通过
echo "<br />";
echo $c||$b||$d ?"通过":"不通过";//通过
?>
运行结果
-
字符串连接运算符
- 字符串连接运算符是为了将两个字符串进行连接,PHP中提供的字符串连接运算符有:
(1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
(2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。
举个栗子
<?php
$a = "张先生";
$tip=$a."欢迎你!";
$b = "东边日出西边雨";
$b.="道是无晴却有晴";
$c = "东边日出西边雨";
$c=$c."道是无晴却有晴";
echo $tip."<br />";
echo $b."<br />";
echo $c."<br />";
?>
运行结果
-
错误控制运算符"@"
PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
举个代码栗
<?php
$conn = @mysql_connect("localhost","username","password");
echo "出错了,错误原因是:".$php_errormsg;
?>
运行结果
关于mysql_connect()
$conn = @mysql_connect(“localhost”,“username”,“password”);
MySQL连接 — 打开一个到mysql服务器的连接
详情参考:https://www.php.net/manual/zh/function.mysql-connect.php
- 警告
本扩展自PHP5.5.0起已废弃,并在自PHP7.0.0开始被移除。应使用MySQLi 或 PDO_MySQL扩展来替换之.参见Mysql:选择API指南以及相关常见问题来获取更多信息.用以替代本函数的有:
mysqli_CONNECT()
PDO:_struction()
说明
MySQL连接 ([ 弦 $server [, 弦 $username [, 弦 $password [, 布尔 $new_link [, INT $client_flags ]]]]] ) : 资源
- 打开或重复使用一个到mysql服务器的连接.
参数
- server
mysql服务器.可以包括端口号,例如“主机名:端口”,或者到本地套接字的路径,例如对于localhost的:/path/to/Socket“。
如果指令默认主机未定义(默认情况),则默认值是‘localhost:3306’。在sql安全模式时,参数被忽略,总是使用‘localhost:3306’。
- username
用户名.默认值由默认用户定义.在sql安全模式时,参数被忽略,总是使用服务器进程所有者的用户名.
- password
密码.默认值由默认密码定义.在sql安全模式时,参数被忽略,总是使用空密码.
- new_link
如果用同样的参数第二次调用MySQL_CONNECT()、将不会建立新连接,而将返回已经打开的连接标识.参数new_link改变此行为并使MySQL_CONNECT()总是打开新的连接,甚至当MySQL_CONNECT()曾在前面被用同样的参数调用过.
- client_flags
client_flags参数可以是以下常量的组合:MYSQL_CLIENT_SSL,MYSQL_CLIENT_COMPRESS,MYSQL_CLIENT_IGNORE_SPACE
或 MYSQL_CLIENT_INTERACTIVE…进一步信息见mysql客户端常量。
返回值
如果成功则返回一个mysql连接标识,或者在失败时返回FALSE。
赛尔ceil()函数
(PHP 4,PHP 5,PHP 7)
赛尔ceil()函数 :进一法取整
说明
赛尔 ( 浮子 $value ) : 浮子
返回不小于value的下一个整数,value如果有小数部分则进一位.
参数
- value
要进一法取整的值
返回值
- 返回不小于value的下一个整数.赛尔()返回的类型仍然是浮子、因为浮子值的范围通常比整型要大.
举个栗子
<?php
echo ceil(4.3); // 5
echo ceil(9.999); // 10
echo ceil(-3.14); // -3
?>
扩充函数
- floor()函数:舍去法取整
- 返回不大于 value 的最接近的整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大
<?php
echo floor(4.3); // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>
- round()函数:对浮点数进行四舍五入
- 返回四舍五入后的值
- 详情参考:https://www.php.net/manual/zh/function.round.php
<?php
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
?>