确定功能是否设置的正确方法
Correct Way to determine if function is set
我似乎找不到解决我的问题的方法。我试图检查函数的值是否已设置以及它是否做了一些事情但是当我 运行 下面的代码底部的代码抛出错误底部的代码是我希望使用的代码
似乎毫无意义地将函数调用到变量中只是为了查看它是否设置
//working check if set
$wa_passwordreset = WA_FN_Validate_Post($_POST['wa_passwordreset']);
if(isset($wa_passwordreset))
{
echo"do some stuff";
}
//NOT working check if set
if(isset( WA_FN_Validate_Post($_POST['wa_passwordreset']) ))
{
echo"do some other stuff";
}
根据PHP manual:
isset — Determine if a variable is set and is not NULL
isset
实际上测试是否设置了 变量 ,而不是函数 return 是否设置了任何值。这就是为什么您的代码不起作用。
im trying to check if the value of a function has been set
函数不有值。函数可能 return 值。您无法检查函数是否有值以及是否已设置。
此外,
$wa_passwordreset = WA_FN_Validate_Post($_POST['wa_passwordreset']);
if(isset($wa_passwordreset))
{
echo "do some stuff";
}
这部分代码将始终 return 为真。这样做的原因是即使 WA_FN_Validate_Post
将 return 一个空字符串,变量 $wa_passwordreset
将被视为已设置并且 isset
检查将始终 return 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";
}
我似乎找不到解决我的问题的方法。我试图检查函数的值是否已设置以及它是否做了一些事情但是当我 运行 下面的代码底部的代码抛出错误底部的代码是我希望使用的代码
似乎毫无意义地将函数调用到变量中只是为了查看它是否设置
//working check if set
$wa_passwordreset = WA_FN_Validate_Post($_POST['wa_passwordreset']);
if(isset($wa_passwordreset))
{
echo"do some stuff";
}
//NOT working check if set
if(isset( WA_FN_Validate_Post($_POST['wa_passwordreset']) ))
{
echo"do some other stuff";
}
根据PHP manual:
isset — Determine if a variable is set and is not NULL
isset
实际上测试是否设置了 变量 ,而不是函数 return 是否设置了任何值。这就是为什么您的代码不起作用。
im trying to check if the value of a function has been set
函数不有值。函数可能 return 值。您无法检查函数是否有值以及是否已设置。
此外,
$wa_passwordreset = WA_FN_Validate_Post($_POST['wa_passwordreset']);
if(isset($wa_passwordreset))
{
echo "do some stuff";
}
这部分代码将始终 return 为真。这样做的原因是即使 WA_FN_Validate_Post
将 return 一个空字符串,变量 $wa_passwordreset
将被视为已设置并且 isset
检查将始终 return 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";
}