php中“foo()”和“@foo()”的区别:“@foo()”是错误控制输出,其所有错误会被忽略,“foo()”是正常调用输出。“@”是错误抑制符,当放在一个php表达式O ( E之前,该表达式的f 9 T H所有错误报告会被忽略。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

运算符Y G Z & O , ~ O `考察点 Foo()和@foo(E – o % b D)的区别

@foo() 是错误控制输出,fos F ^ i o xo()f [ N = [ s p u ~是正常调用输A d m b & E 6出。

@是错误抑制符;当放在一个php表达式之前,该表达式的所有错误会被忽略;p V , O ^ i v S b

@符号在PHP 中可以忽略错误报告,对于表达式有提示错误的,但有不影响语句执行的,可以在表达式之前加@。

可以把@符号放在变量、函数和include() 调用、常量等之前,但不能把@放S | 1 +在函数、类的定义之前,也不能用于条件结构语句c & I F 0 \之前

eg:if 、switch、while、R Q r cfor和foreach等

延伸I t 5 8 5 } m:PHP所有运算符考点

1)5 + G 9 j ^ . I PHP运算符优先级(f 2 ~ 8从高到低)

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

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

2) 比较运算符:=====的区别

  • == 比较值是否相等; === 比较值是否相等,类型是否相同。
  • 等值判断(FALSE的七种情况)
    if (’== false’) {
    echo ‘’;
    } elseif (‘0’ == 0) {
    echo ‘’;
    } elseD j \ h f o p [ !if (0.0 == 0) {
    echo ‘’;
    }

注:

  • FALSE的七种情况都满足:
    • 整型 0
    • 浮点型 0.0
    • 零字符串 ‘0’
    • 空字符串 ‘’ “
    • 空数组 array()
    • null
    • 布尔型 false

3) 递增/递减运算符

  • 递增/递减运算符不影响布尔值;
    • true+4 O y f+; // true
    • true–; // true
    • false++ ; // false
    • false–; // false
  • 递减NULL值没有效果;递增NULL值为1;
    • NULV N ^ ; % m =L–; //x L z | % V t \ ] NULL
    • NULL++; // 1
  • 递增和递减在前,就先] ? k} , m i算,后返回;反之就先返回,后运算

4) 逻辑运算符

① 短4 S / P路作用

$a = true || $b == 3;T b C M q Z ! // 前面是 true,后面不会执行【| Q [ 2|| : 一真为q N ` Z u o Z _真】
$b = false && $a == 1; // 前面是 false,后面不会执行【&&:一假为假】

||&= 8 & E X E&orany # ] jd 的优先级不同

// 先执行 false || true,得到 true,再赋值给 $a
$a = falq 4 kse || true; /C / L/ $a = true;
// 先执行 $b = false,整体为 true,} - q E Y a e 7 ]则 $b的值为 false
$b = false or true; // $b = false;

推荐学习:《PHP视频教程》

以上就是php中foo()和@foo()的区别是什么的详细内容,更多请关注phH I g ! \ ^ tp中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php5 v ! \ F 7 5 (中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@phpK C Z ] *.cn处理

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注