运算符考察点 Foo()和@foo()的区别
@foo() 是错误控制输出,foo()是正常调用输出。
@是错误抑制符;当放在一个php表达式之前,该表达式的所有错误会被忽略;
@符号在PHP 中可以忽略错误报告,对于表达式有提示错误的,但有不影响语句执行的,可以在表达式之前加@。
可以把@符号放在变量、函数和include() 调用、常量等之前,但不能把@放在函数、类的定义之前,也不能用于条件结构语句之前
eg:if 、Switch、while、for和foreach等
延伸:PHP所有运算符考点
1) PHP运算符优先级(从高到低)
- 递增 / 递减
 - !
 - 算术运算符
 - 大小比较
 - (不)相等比较
 - 引用
 - 位运算符(^)
 - 位运算符(|)
 - 逻辑与
 - 逻辑或
 - 三目
 - 赋值
 - and
 - xor
 - or
 
注:括号的使用可以增加代码可读性,推荐使用
2) 比较运算符:== 和 ===的区别
- == 比较值是否相等; === 比较值是否相等,类型是否相同。
 - 等值判断(FALSE的七种情况)
 
if (’== false’) {
echo ‘’;
} elseif (‘0’ == 0) {
echo ‘’;
} elseif (0.0 == 0) {
echo ‘’;
}
注:
- FALSE的七种情况都满足:
 
- 整型 0
 - 浮点型 0.0
 - 零字符串 ‘0’
 - 空字符串 ‘’ "
 - 空数组 array()
 - null
 - 布尔型 false
 
3) 递增/递减运算符
- 递增/递减运算符不影响布尔值;
 
- true++; // true
 - true–; // true
 - false++ ; // false
 - false–; // false
 - 递减NULL值没有效果;递增NULL值为1;
 
- NULL–; // NULL
 - NULL++; // 1
 - 递增和递减在前,就先运算,后返回;反之就先返回,后运算
 
4) 逻辑运算符
① 短路作用
$a = true || $b == 3; // 前面是 true,后面不会执行【|| : 一真为真】 $b = false && $a == 1; // 前面是 false,后面不会执行【&&:一假为假】
② || 和 && 与 or 和 and 的优先级不同
// 先执行 false || true,得到 true,再赋值给 $a $a = false || true; // $a = true; // 先执行 $b = false,整体为 true,则 $b的值为 false $b = false or true; // $b = false;
	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
		
评论(0)