运算符

一、算数运算符

示例代码:

<?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

  1. == :等于,在数据类型不同时会进行数据类型转换,然后进行比较(0 == "")。
  2. === :全等,在数据类型不同时不会进行数据类型转换,只有数据类型相同且值相等时才为 true
  3. != :不等于,在数据类型不同时会进行数据类型转换,然后进行比较(1 != "")。
  4. !== :不全等,在数据类型不同时不会进行数据类型转换,只有数据类型相同且值不等时才为 false

Warning

PHP 中规定使用 echo 输出布尔类型的时候,echo true 会在页面中输出 1echo 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