PHP 使用 isset 检查输入


PHP Checking input with isset

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

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

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

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

您也可以使用

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

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

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

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

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

isset会告诉您键是否存在并且值不为 null。

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

No.

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

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

无论如何,始终对可能存在或不存在的变量或数组键调用isset()必须成为规则。

或者你会收到所有这些"未定义"的警告......

以下内容就足够了:

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

  2. 在布尔上下文中使用$options['url']等表达式时,将检查其真实性(请参阅转换为布尔值部分)。empty()函数为大多数表达式生成相同的结果。