错误控制符
php支持一个错误运算符@放在php表达式之前,该表达式可能产生的任何错误信息都被忽略掉
php运算符的优先级
运算符优先级
建议着重记忆
递增/递减>!>算数运算符>大小比较>(不)相等比较>引用>位运算符(^)>位运算符(|)>逻辑与>逻辑或>三目运算符>赋值>and>xor>or
<?php
$x=TRUE;
$y=FALSE;
$z = $y OR $x;
var_dump($z);
?>
这个是FALSE
<?php
$x=TRUE;
$y=FALSE;
$z = $y || $x;
var_dump($z);
?>
这个是true
括号的使用可以增加代码可读性,推荐使用
延伸考点比较运算符
==和===的区别
if ('==false') {
echo ''} elseif('0'==) {
}
false的七种情况都是等值的
递增/递减运算符不影响布尔值
递减对Null值没有效果
递增null值为1
递增和递减在前就先运算符后返回,反之就先返回,后运算
逻辑运算符
短路作用
||和&&与or和and的优先级不同
$a=true||$b==3;前面是true后面就不执行了
$b=false&&$a==1;前面是false后面就不执行了
|| && and or
$a=false||true; true
$b=false or true; false 先执行$b=false 后执行true所以为false
解题方法重点记忆递增/递减运算符的运算规则
真题
下列程序中写出打印输出的结果
<?php
$a=0;
$b=0;
if ($a=3>0||$b=3>0) {
$a++;
$b++;
echo $a."\n";
echo $b."\n";
}
此时>号的优先级大于||的优先级大于赋值运算=
$a=true $b=0;
$a++ true 1 bole(true)
$b+1 1 int(1)
所以1 1
- 空白目录
- 安装
- linux下安装nginx
- linux下安装php
- 调试
- windows 安装wamp
- 常用源
- 类型
- Boolean布尔类型
- Integer整型
- Float浮点型
- String字符串
- Array数组
- Object对象
- Resource资源类型
- NULL
- Callback/Callable类型
- 类型转换
- 变量
- 预定义变量
- 常量
- 魔术常量(预定义常量)
- 语法
- 运算符
- 流程控制
- 条件语句
- if
- else
- else if/elseif
- switch
- 循环语句
- while
- do-while
- for
- foreach
- break
- return
- continue
- require
- include
- require_once
- include_once
- 函数
- 内置函数
- 匿名函数
- 自定义函数
- 类与对象
- 属性
- 声明
- public
- protected
- private
- 类常量
- 方法
- 魔术方法
- __construct()
- __destruct()
- __call()
- __callStatic()
- __get()
- __set()
- __isset()
- __unset()
- __sleep()
- __wakeup()
- __toString()
- __invoke()
- __set_state()
- __clone()
- __debugInfo()
- 方法的调用
- ->(对象运算符)
- ::(范围解析操作符)
- 设计模式
- 依赖注入
- call_user_func
- is_callable (
- 创建型模式
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- 建造者模式
- 原型模式
- 结构性模式
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
- 行为型模式
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代子模式
- 责任链模式
- 命令模式
- 备忘录模式
- 访问者模式
- 中介者模式
- 解释器模式
- 六大原则
- uml语言
- 反射
- 类型约束
- 调试
- lamp
- lnmp
- composer
- 工作常用
- UML图
- 常见问题