你能用PHP 4中的if($ var)来检查变量是否存在?

时间:2017-04-30 12:46:35

标签: php php4

我正在将旧代码从PHP 4升级到PHP 5,我经常看到的是:

if (!$variable) {
    // for example...
    $variable = "test";
}

要理解我需要知道的代码,如果可以在PHP 4次之前通过这样做来检查变量是否存在。

我很抱歉,但我无法谷歌答案。

1 个答案:

答案 0 :(得分:0)

if (!$variable)测试$variable是否评估为false。根据章节Converting to boolean,很多内容都评估为false

  • 布尔值FALSE本身
  • 整数0(零)
  • 浮点数0.0(零)
  • 空字符串,字符串" 0"
  • 包含零元素的数组
  • 特殊类型NULL(包括未设置变量
  • 从空标签创建的SimpleXML对象

因此,使用这种代码来测试变量是否已经设置是危险的。此外,它会在使用变量但未设置变量时生成通知。

是的,代码将使用PHP 4执行。但是当$variable设置为0,空字符串或字符串'0'时,您可能会收到意外结果。

对于更干净的代码,您应该使用isset

if (!isset($variable)) {
    // for example...
    $variable = "test";
}

根据文档,PHP {4}引入了isset