PHP上的"isset($ string)"和"@ $ string"有什么不同?

Abu*_*yah 7 php

PHP isset($string)@$stringPHP 之间有什么不同?

这有两种方式,那有什么区别?

if(isset($string))
 ....


if(@$string)
 ....
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 6

  1. issettrue如果给定的变量存在,不是null.
    @$vartrue如果的值$var true在一个松散的比较.*
    !== null== true不同的值相匹配.

  2. @$var如果$var不存在的情况下,将在内部生成错误并引发错误并通过其输出进行抑制@.这是一个更昂贵的操作,它可能会在途中触发自定义的错误处理程序.如果有替代方案,请不要使用它.

*一个不存在的变量的值被替换为null,等于false.


ven*_*uil 1

函数isset()检查变量,如果变量存在则返回 true。标志@忽略错误。给出几乎相同的值。下一个代码可能会显示它:

   if(isset($string))
      print 1; // no print
   if(@$string)
      print 2; // no print

   $string = false;
   if(isset($string))
      print 3; // print 3
   if(@$string)
      print 4; // no print
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考:三个反引号仅适用于 GitHub 的 markdown,不适用于此处。 (2认同)