以下为学习孔祥盛主编的《PHP编程基础与实例教程》(第二版)所做的笔记。
3.4.1 算术运算符
<?php
$num1 = -10;
$num2 = -4;
$num3 = $num1%$num2;
$num4 = $num1/$num2;
var_dump($num3); //int -2
echo "<br/>";
var_dump($num4); //float 2.5
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:6:int -2 D:\wampServer\www\Apache服务器主目录\practise\例程.php:8:float 2.5
3.4.2 递增/递减运算符
++$a:$a的值加1,然后返回$a
$a++:返回$a,然后将$a的值加 1
<?php
$num1 = 2;
$num2 = ++$num1; //$num1先自加1,然后再将结果赋值给$num2
$num3 = 2;
$num4= $num3++; //先把$num3的值赋给$num4,然后$num3自加1 echo '$num1 =',$num1; //
echo "<br/>";
echo '$num2 =',$num2; //
echo "<br/>";
echo '$num3 =',$num3; //
echo "<br/>";
echo '$num4 =',$num4; //
echo "<br/>";
?>
输出:
$num1 =3
$num2 =3
$num3 =3
$num4 =2
3.4.3 赋值运算符
PHP中的组合运算符:+=、-=、*=、/=、%=、.=等
程序:
<?php
var_dump($a = ($b = 4) + 5); //int 9
echo "<br/>";
echo $a;
echo "<br/>";
echo $b;
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:2:int 9 9
4
程序:
<?php
$a = 5;
$a += 3;
echo $a;
echo "<br/>";
$a *= 2;
echo $a;
echo "<br/>";
$a /=2;
echo $a;
echo "<br/>";
?>
输出:
8
16
8
3.4.4 比较运算符
全等 ===
不等 <>
非全等 !==
程序:
<?php
$a = 5;
$b = "5.0";
var_dump($a==$b); //boolean true
echo "</br>";
var_dump($a===$b); //boolean false
echo "</br>";
var_dump($a!=$b); //boolean false
echo "</br>";
var_dump($a!==$b); //boolean true
echo "</br>";
var_dump($a>=$b); //boolean true
echo "</br>";
var_dump($a<=$b); //boolean true
echo "</br>"; var_dump($a<>$b); //boolean false
echo "</br>";
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:4:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:6:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:8:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:10:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:12:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:14:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:17:boolean false
3.4.5 逻辑运算符
逻辑与 | && | and |
逻辑或 | || | or |
逻辑非 | ! | |
逻辑异或 | xor |
逻辑异或 xor :俩值只有一值为 true ,结果为true,否则为false。
程序:
<?php
$a = 3>2;
$b = 3>4;
$c = 3>1;
var_dump($a && $b); //boolean false
echo "<br/>";
var_dump($a||$b); //boolean true
echo "<br/>";
var_dump(!$a); //boolean false
echo "<br/>";
var_dump($a xor $b); //boolean true
echo "<br/>";
var_dump($a xor $c); //boolean false
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:5:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:7:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:9:boolean false D:\wampServer\www\Apache服务器主目录\practise\例程.php:11:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:13:boolean false
3.4.6 字符串连接运算符
字符串连接运算符只有一个电运算符“.”,使用 “.”运算符可以将两个字符串连接成一个字符串。
程序:
<?php
echo "hello world!"."<br/>".date("Y年m月d日h时i分s秒");
?>
输出:
hello world!
2019年11月05日03时57分15秒
3.4.7 错误抑制运算符
将 "@"运算符放置在PHP表达式之前,该表达式产生的任何错误信息将不会输出。这样做有两个好处。
1.安全:避免错误信息外露,造成系统漏洞。
2.美观:避免浏览器页面出现错误信息,影响页面美观。
程序:
<?php
print $age; //显示变量未定义的notice信息
echo "<br/>";
@print $age; //@屏蔽变量未定义的notice信息 //不能将print替换成echo,否则会出现程序解析错误
?>
结果:
在出现数据库连接、打开文件流、除0异常时,可以用@符号来抑制函数或表达式错误信息。
3.4.8 条件运算符
语法格式为:表达式1?表达式2:表达式3
条件运算符为三目运算符
程序:
<?php
$a = 0.0;
$b = ($a==0?"zero":"not zero");
echo $b;
?>
输出:
zero
3.4.9 类型运算符
instanceof 用于判断一个对象是否是某个类的对象
程序:
<?php
class A{
}
class B{
}
$a = new A(); var_dump($a instanceof A); //boolean true
echo "<br/>";
var_dump($a instanceof B); //boolean false
?>
输出:
D:\wampServer\www\Apache服务器主目录\practise\例程.php:8:boolean true D:\wampServer\www\Apache服务器主目录\practise\例程.php:10:boolean false
3.4.10 执行运算符
执行运算符使用反引号(·)(一般是键盘上ESC下面的按键)。执行运算符尝试将反引号中的字符串内容作为操作系统系统命令来执行(如Linux的shell命令或Windows的DOS命令),并返回该系统命令的执行结果。
<?php
$cmd = `netstat -aon`;
print_r($cmd);
?>
3.4.11 位运算符
位运算符主要用于整型数据的运算,当表达式包含位运算符时,运算时会先将各整型数据转换为相应的二进制数,然后再进行位运算。
图片
程序:
<?php
$a = 12; //12=00001100
$b = 3; // 3=00000011
echo $a & $b; //
echo "<br/>";
echo $a | $b; //
echo "<br/>";
echo $a ^ $b; //
echo "<br/>";
echo ~$a; //-13
echo "<br/>";
echo $a << $b; //
echo "<br/>";
echo $a >> $b; //
?>
输出:
0
15
15
-13
96
1
3.4.12 运算符优先级
图片
使用括号“()”是避免优先级混乱的最有效方式。