运算符
一、算数运算符
示例代码:
<?php
$a = 10;
$b = 3;
// 算数运算符
echo (-$b)."<br/>";
echo ($a + $b)."<br/>";
echo ($a - $b)."<br/>";
echo ($a * $b)."<br/>";
echo ($a / $b)."<br/>";
echo ($a % $b)."<br/>";
echo ($a++)." ".($a)."<br/>";
echo (++$a)." ".($a)."<br/>";
echo ($a--)." ".($a)."<br/>";
echo (--$a)." ".($a)."<br/>";
运行结果:
-3
13
7
30
3.3333333333333
1
10 11
12 12
12 11
10 10
二、连接运算符
示例代码:
<?php
$name = "Hailong!";
$str = "Hello ".$name."<br/>";
echo $str."<br/>";
运行结果:
Hello Hailong!
三、赋值运算符
示例代码:
<?php
$num1 = 10;
$num2 = 3;
$num1 += $num2;
echo $num1."<br/>";
$num1 -= $num2;
echo $num1."<br/>";
$num1 *= $num2;
echo $num1."<br/>";
$num1 /= $num2;
echo $num1."<br/>";
$num1 %= $num2;
echo $num1."<br/>";
$num1 .= $num2;
echo $num1."<br/>";
运行结果:
13
10
30
10
1
13
四、比较运算符
示例代码:
<?php
$a = 10;
$b = 20;
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/>";
var_dump($a < $b);
echo "<br/>";
var_dump($a >= $b);
echo "<br/>";
var_dump($a <= $b);
echo "<br/>";
运行结果:
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
Note
==
:等于,在数据类型不同时会进行数据类型转换,然后进行比较(0 == ""
)。===
:全等,在数据类型不同时不会进行数据类型转换,只有数据类型相同且值相等时才为true
。!=
:不等于,在数据类型不同时会进行数据类型转换,然后进行比较(1 != ""
)。!==
:不全等,在数据类型不同时不会进行数据类型转换,只有数据类型相同且值不等时才为false
Warning
PHP 中规定使用 echo 输出布尔类型的时候,echo true
会在页面中输出 1
,echo false
在页面中无输出,建议使用 var_dump()
输出结果。
五、逻辑运算符
示例代码:
<?php
$a = true;
$b = false;
var_dump($a and $b);
echo "<br/>";
var_dump($a && $b);
echo "<br/>";
var_dump($a or $b);
echo "<br/>";
var_dump($a || $b);
echo "<br/>";
var_dump($a xor $b);
echo "<br/>";
var_dump(!$a);
echo "<br/>";
运行结果:
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
六、? : 运算符
示例代码:
<?php
$a = 10;
$b = 20;
echo ($a > $b ? "true" : "false")."<br/>";
运行结果:
false
七、反引号运算符
使用反引号 `` 运算符可以调用系统命令
示例代码:
<?php
header('Content-Type: text/html; charset=GBK');
$cmd1 = "whoami";
$cmd2 = "ipconfig";
echo "<pre>".`$cmd1`;
echo "<pre>".`$cmd2`;
运行结果:
hailo-laptop\puppy
Windows IP 配置
以太网适配器 以太网:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 本地连接* 9:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 本地连接* 10:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
IPv6 地址 . . . . . . . . . . . . : 2409:8a0c:240:bbe0:e609:ee1a:c4cb:a87e
临时 IPv6 地址. . . . . . . . . . : 2409:8a0c:240:bbe0:5105:5a5a:5c8:8ca4
本地链接 IPv6 地址. . . . . . . . : fe80::2773:6473:2699:b0eb%18
IPv4 地址 . . . . . . . . . . . . : 192.168.1.82
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : fe80::1a4f:43ff:fe2d:cbd6%18
192.168.1.1
以太网适配器 VMware Network Adapter VMnet1:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::5:b2a7:da70:4287%21
IPv4 地址 . . . . . . . . . . . . : 192.168.131.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
以太网适配器 VMware Network Adapter VMnet8:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::c0bb:4949:6737:4218%4
IPv4 地址 . . . . . . . . . . . . : 192.168.126.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
隧道适配器 Teredo Tunneling Pseudo-Interface:
连接特定的 DNS 后缀 . . . . . . . :
IPv6 地址 . . . . . . . . . . . . : 2001:0:2851:b9f0:1094:8ae6:90cb:a465
本地链接 IPv6 地址. . . . . . . . : fe80::1094:8ae6:90cb:a465%12
默认网关. . . . . . . . . . . . . :
Warning
header()
是 PHP 中的一个函数,用于发送 HTTP 响应头到客户端(通常是浏览器)。由于 Windows 的命令行默认使用 GBK 编码方式,为避免输出乱码问题,可以使用 header('Content-Type: text/html; charset=GBK');
更改网页编码。
八、@运算符
使用 echo @$k;
可以屏蔽表达式可能发生的错误信息
示例代码:
<?php
echo $k;
运行结果:
Notice: Undefined variable: k in D:\Workspace\php\learning\operator.php on line 3