登录 |  注册
首页 >  编程技术 >  PHP入门基础教程笔记 >  PHP运算符

PHP运算符

PHP 运算符

PHP 中的运算符分为:算术运算符、递增/递减运算符、比较运算符、逻辑运算符、数组运算符、三元运算符等。


本章节我们将讨论 PHP 中不一样运算符的应用。

在 PHP 中,赋值运算符 = 用于给变量赋值。

在 PHP 中,算术运算符 + 用于把值加在一起。


PHP 算术运算符

运算符名称描述实例结果
x + yx 和 y 的和2 + 24
x - yx 和 y 的差5 - 23
x * yx 和 y 的积5 * 210
x / yx 和 y 的商15 / 53
x % y模(除法的余数)x 除以 y 的余数5 % 2
10 % 8
10 % 2
1
2
0
- x取反x 取反- 2
a . b并置连接两个字符串"Hi" . "Ha"HiHa

以下实例演示了使用不一样算术运算符得到的不一样结果:

实例

<?php  
$x=10;  
$y=6;  
echo ($x + $y); // 输出16  
echo ($x - $y); // 输出4  
echo ($x * $y); // 输出60  
echo ($x / $y); // 输出1.6666666666667  
echo ($x % $y); // 输出4  
?>


 尝试一下 »


PHP 赋值运算符

在 PHP 中,基本的赋值运算符是 "="。它意味着左操作数被设置为右侧表达式的值。也就是说,"$x = 5" 的值是 5。

运算符等同于描述
x = yx = y左操作数被设置为右侧表达式的值
x += yx = x + y
x -= yx = x - y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y模(除法的余数)
a .= ba = a . b连接两个字符串

以下实例演示了使用不一样赋值运算符得到的不一样结果:

实例

<?php  
$x=10;  
echo $x; // 输出10  
 
$y=20;  
$y += 100;  
echo $y; // 输出120  
 
$z=50;  
$z -= 25;  
echo $z; // 输出25  
 
$i=5;  
$i *= 6;  
echo $i; // 输出30  
 
$j=10;  
$j /= 5;  
echo $j; // 输出2  
 
$k=15;  
$k %= 4;  
echo $k; // 输出3  
?>


 尝试一下 »

以下实例演示了使用不一样字符串运算符得到的不一样结果:

实例

<?php  
$a = "Hello";  
$b = $a . " world!";  
echo $b; // 输出Hello world!  
 
$x="Hello";  
$x .= " world!";  
echo $x; // 输出Hello world!  
?>


 尝试一下 »


PHP 递增/递减运算符

运算符名称描述
++ x预递增x 加 1,然后返回 x
x ++后递增返回 x,然后 x 加 1
-- x预递减x 减 1,然后返回 x
x --后递减返回 x,然后 x 减 1

以下实例演示了使用递增/递减运算符得到的结果:

实例

<?php  
$x=10;  
echo ++$x; // 输出11  
 
$y=10;  
echo $y++; // 输出10  
 
$z=5;  
echo --$z; // 输出4  
 
$i=5;  
echo $i--; // 输出5  
?>


 尝试一下 »


PHP 比较运算符

比较操作符可以让您比较两个值:

运算符名称描述实例
x == y等于如果 x 等于 y,则返回 true5==8 返回 false
x === y恒等于如果 x 等于 y,且它们类型相同,则返回 true5==="5" 返回 false
x != y不等于如果 x 不等于 y,则返回 true5!=8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5<>8 返回 true
x !== y不恒等于如果 x 不等于 y,或它们类型不相同,则返回 true5!=="5" 返回 true
x > y大于如果 x 大于 y,则返回 true5>8 返回 false
x < y小于如果 x 小于 y,则返回 true5<8 返回 true
x >= y大于等于如果 x 大于或者等于 y,则返回 true5>=8 返回 false
x <= y小于等于如果 x 小于或者等于 y,则返回 true5<=8 返回 true

以下实例演示了使用一些比较运算符得到的不一样结果:

实例

<?php  
$x=100;  
$y="100";  
 
var_dump($x == $y);  
echo "<br>";  
var_dump($x === $y);  
echo "<br>";  
var_dump($x != $y);  
echo "<br>";  
var_dump($x !== $y);  
echo "<br>";  
 
$a=50;  
$b=90;  
 
var_dump($a > $b);  
echo "<br>";  
var_dump($a < $b);  
?>


 尝试一下 »


PHP 逻辑运算符

运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6
y=3
(x==6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==5 || y==5) 返回 false
! x如果 x 不为 true,则返回 truex=6
y=3
!(x==y) 返回 true

PHP 数组运算符

运算符名称描述
x + y集合x 和 y 的集合
x == y相等如果 x 和 y 具有相同的键/值对,则返回 true
x === y恒等如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y不相等如果 x 不等于 y,则返回 true
x <> y不相等如果 x 不等于 y,则返回 true
x !== y不恒等如果 x 不等于 y,则返回 true

以下实例演示了使用一些数组运算符得到的不一样结果:

实例

<?php  
$x = array("a" => "red", "b" => "green");  
$y = array("c" => "blue", "d" => "yellow");  
$z = $x + $y; // $x 和 $y 数组合并  
var_dump($z);  
var_dump($x == $y);  
var_dump($x === $y);  
var_dump($x != $y);  
var_dump($x <> $y);  
var_dump($x !== $y);  
?>


 尝试一下 »

PHP 三元运算符

另一个条件运算符是"?:"(或三元)运算符 。

语法格式:

(expr1) ? (expr2) : (expr3)

对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

实例

以下实例中通过判断 $_GET 请求中含有 user 值,如果有返回 $_GET['user'],否则返回 nobody:

实例

<?php  
$test = 'yukx在线教程';  
// 普通写法  
$username = isset($test) ? $test : 'nobody'; echo $username, PHP_EOL;  
 
// PHP 5.3+ 版本写法  
$username = $test ?: 'nobody'; echo $username, PHP_EOL;  
?>

运算符优先级

运算符优先级确定表达式中的术语分组。这会影响表达式的计算方式。某些运算符的优先级高于其他运算符;例如,乘法运算符的优先级高于加法运算符。

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

结合方向运算符附加信息
clone newclone 和 new
从左到右
[array()
从右到左
++  --  ~ (int) (float) (string) (array) (object) (bool) @类型和递增/递减
instanceof类型
从右到左
!逻辑运算符
从左到右
*  /  %算术运算符
从左到右
+ – .算术运算符和字符串运算符
从左到右
<< >>位运算符
==  !=  ===  !==  <>比较运算符
从左到右
&位运算符和引用
从左到右
^位运算符
从左到右
|位运算符
从左到右
&&逻辑运算符
从左到右
||逻辑运算符
从左到右
? :三元运算符
从右到左
=  +=  -=  *=  /=  .=  %=  &=  |=  ^= <<=  >>=  =>赋值运算符
从左到右
and逻辑运算符
从左到右
xor逻辑运算符
从左到右
or逻辑运算符
从左到右
,多处用到

运算符优先级中,or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。

<?php
// 优先级: &&  >  =  >  and
// 优先级: ||  >  =  >  or
 
$a = 3;
$b = false;
$c = $a or $b;
var_dump($c);          // 这里的 $c 为 int 值3,而不是 boolean 值 true
$d = $a || $b;
var_dump($d);          //这里的 $d 就是 boolean 值 true 
?>

以上实例输出结果为:

int(3)
bool(true)

括号的使用

我们通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,一般能够增加代码的可读性。

<?php
// 括号优先运算
 
$a = 1;
$b = 2;
$c = 3;
$d = $a + $b * $c;
echo $d;
echo "\n";
$e = ($a + $b) * $c;  // 使用括号
echo $e;
echo "\n";
?>

以上实例输出结果为:

7
9


上一篇: PHP字符串变量
下一篇: PHPif...else语句
推荐文章
  • 项目中,有些函数需要处理某个服务的返回结果,而在对函数单元测试的时候,又不能启动那些服务,这里就可以利用Mockito工具,其中有如下三种注解:@InjectMocks:创建一个实例,简单的说是这个Mock可以调用真实代码的方法,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。
  • 雪花算法(Snowflake)是由Twitter开发的一种分布式ID生成算法,旨在为分布式系统提供一种简单而有效的方式,以生成全局唯一、有序且可排序的64位整数ID。这种ID通常用作数据库记录的主键或其他需要唯一标识符的场景。雪花算法生成的64位ID结构如下:最高位(第64位):固定为0,因为64位
  • 在HTML中,如果你想让一个输入框(input元素)不可编辑,你可以通过设置其readonly属性来实现。示例如下:input type="text" value="此处内容不可编辑" readonly在上述代码中,readonly属性使得用户无法修改输入框中的内容。另外,如果你希望输入框完全不可交
  • ASP.NET教程ASP.NET又称为ASP+,基于.NETFramework的Web开发平台,是微软公司推出的新一代脚本语言。ASP.NET是一个使用HTML、CSS、JavaScript和服务器脚本创建网页和网站的开发框架。ASP.NET支持三种不一样的开发模式:WebPages(Web页面)、
  • C# 判断判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。下面是大多数编程语言中典型的判断结构的通常形式:判断语句C#提供了以下类型的判断语句。点击链接查看每个语句的细节。语句描述if语句一个 if语句 由一个布尔表达式后跟
  • C#循环有的时候,可能需要多次执行同一块代码。通常情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的通常形式:循环类型C#提供了以下几种循环类型
学习大纲