正确确定是否设置了功能的方法

时间:2016-02-06 05:10:27

标签: php function post isset

我似乎无法找到解决问题的方法。我试图检查函数的值是否已经设置,如果它已经做了一些东西,但是当我运行下面的代码时,底部的代码会抛出一个错误,底部的代码是我想要使用的代码

似乎毫无意义地将函数调用为变量,只是为了查看它的集合

HKEY_CURRENT_USERS

1 个答案:

答案 0 :(得分:1)

根据PHP manual

  

isset - 确定变量是否已设置且不为NULL

isset实际测试是否设置了变量,而不是函数返回任何值。这就是你的代码不起作用的原因。

  

我试图检查函数的值是否已设置

的函数具有值。函数可以返回值。您无法检查函数是否具有值以及是否已设置。

此外,

$wa_passwordreset = WA_FN_Validate_Post($_POST['wa_passwordreset']);
if(isset($wa_passwordreset))
{
    echo "do some stuff";
}

此部分代码将始终返回true。这样做的原因是,即使WA_FN_Validate_Post返回空字符串,变量$wa_passwordreset也会被视为已设置,isset检查将始终返回true。为避免这种情况,您应该检查$_POST,如下所示:

if(isset($_POST['wa_passwordreset']))
{
    $wa_passwordreset = WA_FN_Validate_Post($_POST['wa_passwordreset']);
    echo "do some stuff";
}

或者,如果维持订单并在WA_FN_Validate_Post之后检查至关重要,请使用empty

$wa_passwordreset = WA_FN_Validate_Post($_POST['wa_passwordreset']);
if(isset($wa_passwordreset) && !empty($wa_passwordreset)) // be extra paranoid!
{
    echo "do some stuff";
}