if(!$ variable)和if(isset($ variable))之间有什么区别?

时间:2011-03-02 08:15:39

标签: php

if(!$variable)if(isset($variable))之间的区别是什么?

3 个答案:

答案 0 :(得分:19)

嗯,答案很简单。 isset($var)返回变量是否存在且不为空,其中!$var告诉您该变量是true,还是评估为true的任何变量(例如非变量) -empty string)。这在this documentation page的第一个表格中进行了总结。

此外,使用!$var会输出您正在使用未定义变量的通知,而isset($var)则不会这样做。

请注意,它们是两回事:

<?php
var_dump( isset($foo) ); // false.
var_dump( !$foo );       // true, but with a warning.

$foo = false;
var_dump( isset($foo) ); // true
var_dump( !$foo );       // true.

答案 1 :(得分:3)

如果未设置变量,则在使用if(!Variable)时会收到警告。

答案 2 :(得分:0)

他们是两个不同的陈述

  1. 在第一个中检查变量是否为false,因此'!'
  2. 在这里检查一个变量是否实际设置为某个值,然后是null。