PHP isset($string)和@$stringPHP 之间有什么不同?
这有两种方式,那有什么区别?
if(isset($string))
....
if(@$string)
....
Run Code Online (Sandbox Code Playgroud)
isset是true如果给定的变量存在,不是null.
@$var是true如果的值$var 是true在一个松散的比较.*
!== null和== true不同的值相匹配.
在@$var如果$var不存在的情况下,将在内部生成错误并引发错误并通过其输出进行抑制@.这是一个更昂贵的操作,它可能会在途中触发自定义的错误处理程序.如果有替代方案,请不要使用它.
*一个不存在的变量的值被替换为null,等于false.
函数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)