在PHP中,(未设置)的目的是什么?

Sha*_*hui 15 php

不,我不是指unset()语言构造,而是(未设置)类型的构造者.从PHP手册:

允许的演员阵容是:

  • (int),(integer) - 强制转换为整数
  • (bool),(boolean) - 强制转换为布尔值
  • (浮动),(双),(真实) - 施放到浮动
  • (字符串) - 强制转换为字符串
  • (数组) - 强制转换为数组
  • (对象) - 强制转换为对象
  • (未设置) - 强制转换为NULL(PHP 5)

网址:http://php.net/manual/en/language.types.type-juggling.php

有没有人对此有任何想法(甚至在实际项目中使用它)?

hak*_*kre 0

目的是强制转换为 NULL,就像您在问题中已经写的那样:

(unset) - cast to NULL (PHP 5)
Run Code Online (Sandbox Code Playgroud)

假设您有一个变量,$varisset($var)值为TRUE。然后您可以将该变量转换为NULL

/**
 * @param mixed $var anything
 */
function func($var)
{
    if (isset($var))
    {
        $var = (unset) $var;
    }
    # the rest of the code expects $var to be NULL
    ...
}
Run Code Online (Sandbox Code Playgroud)

当然,$var = NULL在这里也会做同样的事情,但没有铸造。

  • 其一,“if (isset($var))”最好写成“if ($var !== null)”,因为变量将*总是*被*设置*,因为它是一个函数参数。其次,如果变量总是应该为“null”,为什么首先将其作为函数参数呢?第三,即使这在某种程度上是有意义的,只需在函数顶部初始化 `$var = null`,它也具有完全相同的效果。 (2认同)