0

为了检查输入字段是否为空或有任何值,以下两种方法是否会以相同的方式工作?或者他们中的任何一个都比其他更好?

if ($options['url']) {
    ..
}

或者

if ( isset ($options['url']) &&  ($options['url']!="") ) {
    ..
}
4

5 回答 5

2

如果不是数组或索引不存在,如果不与您核对,isset()至少会收到一条通知消息。所以应该使用。$optionsurlisset()

你也可以使用

if (! empty($options['url'])) {
    ...
}

Empty()检查任何错误值(如空字符串、未定义等)。

于 2012-06-27T10:53:26.280 回答
1

下面的代码仅检查该值是否为真,假设键存在。如果密钥不存在,将触发通知。if ($options['url']) { .. }

isset会告诉你键是否存在并且值不为空。

我会使用empty它,因为如果键不存在,它将返回 false,如果键确实存在但值为空,它也会返回 false。

于 2012-06-27T11:01:39.113 回答
1

不。

$options['url']!=""检查变量是否为空,

whileisset($options['url'])检查变量是否已设置不是 NULL

无论如何,总是调用可能存在或不存在isset()的变量或数组键必须是一个规则。

或者你会得到所有那些“未定义”的警告......

于 2012-06-27T11:03:49.887 回答
1

以下内容就足够了:

if (isset($options["url"]) && $options["url"]) {
   // ...
}
  1. 用于检查数组中isset()是否存在特定键(并避免未定义索引通知)。这是一个很好的编程习惯。在这种情况下,您也可以使用该array_key_exist()功能,但isset通常更快。

  2. $options['url']在布尔上下文中使用诸如此类的表达式时;检查其真实性(请参阅转换为布尔部分)。该empty()函数对大多数表达式产生相同的结果。

于 2012-06-27T11:12:03.937 回答
1

Isset 确定变量是否不为 NULL 并且已设置。

($options['url']) 确定变量是否返回 true

于 2012-06-27T10:53:27.117 回答