php 运算符

本文详细介绍了PHP中的运算符优先级、比较运算符的区别与特殊情形、逻辑运算符的短路特性及示例代码分析,帮助读者更好地理解并运用PHP运算符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、运算符优先级
递增/递减 > ! > 算术运算符 > 大小比较 > (不)相等比较 > 引用 > 
位运算符(^) > 位运算符(|) > 逻辑与 > 逻辑或 > 三目 > 赋值 > and > xor > or

括号的使用可以增加代码可读性,推荐使用

二、比较运算符
2.1、== 和 === 的区别
==: 比较值
===:比较值 和 比较类型

2.2、等值判断(FALSE的七种情况)
0, 0.0, ' ', '0', false, array(), null

2.3、递增递减不影响布尔值

2.4、递减NULL值没有效果,但是递增NULL值为1

三、逻辑运算符
3.1、短路作用
$a = true || $b == 3;//$b 不执行
$b = false && $a == 1;//$a 不执行

3.2、||和&& 与 or和and的优先级不同
&& > || > and > or

$a = false || true; //true
$b = false or true; // false

四、示例

<?php

/**
 * 下列程序中请写出打印输出的结果
 * <?php
 *
 * $a = 0;
 * $b = 0;
 *
 * if ($a = 3 > 0 || $b = 3 > 0) 
 * {
 *      $a++;
 *      $b++;
 *      echo $a. "\n";
 *      echo $b. "\n";
 * }
 */
$a = 0;
$b = 0;

if ($a = 3 > 0 || $b = 3 > 0) 
{
/**
*	> 的优先级大于 || 大于 =
*	因此可以认为是
*	$a = ((3 > 0) || $b = 3 > 0)
*	=> $a = (true || $b = 3 > 0)
*	由于逻辑或短路作用,b 不再执行
*	因此:$a = true, b = 0
*	由于布尔值递增和递减都不影响还是true,而打印echo时,true底层转为1
*	因此最终echo a 和 b,都是1
*/
    $a++;
    $b++;
    echo $a. "\n";
    echo $b. "\n";
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值