如果$ str不存在,我试图让我的代码返回false
这是我尝试过的(但没有奏效):
function rev_epur_str($str)
{
$str = implode(' ', array_map('strrev', explode(' ', $str)));
$str = preg_replace('/\s+/', '', $str);
if (isset($str))
{
return $str;
}
else
{
return false;
}
}
var_dump(rev_epur_str());
输出说:
PHP Warning: Missing argument 1 for rev_epur_str()
它只返回错误而不是false
var_dump(rev_epur_str("")); // returns string(0) "" instead of FALSE
如果$str
为空,我该如何返回false?
答案 0 :(得分:2)
您可以在PHP中设置参数的默认值。下面的代码使$str
成为可选参数,同时,它会进行empty
检查以返回false。
function rev_epur_str($str = '')
{
if (empty($str))
return false;
$str = implode(' ', array_map('strrev', explode(' ', $str)));
$str = preg_replace('/\s+/', '', $str);
return $str;
}
var_dump(rev_epur_str()); // false
var_dump(rev_epur_str('str')); // rts
注意:原始代码中显示的错误完全有效,您已设置您的函数采用参数,因此必须将参数传递给它,即,除非你为所述参数使用默认值(这是上面已经做过的)。
直播示例
阅读材料
答案 1 :(得分:0)
不是返回布尔值,回显字符串,所以你可以确定它是否正常工作:
function rev_epur_str($str)
{
$str = implode(' ', array_map('strrev', explode(' ', $str)));
$str = preg_replace('/\s+/', '', $str);
if (isset($str))
{
echo $str;
}
else
{
echo 'false';
}
}
答案 2 :(得分:0)
您必须调用类似
的功能的var_dump(rev_epur_str($ STR));
意味着$ str应该有一些价值;
答案 3 :(得分:0)
您的代码会抛出错误,因为您为函数声明了一个参数,并且在没有任何参数的情况下调用它。
解决这个问题并允许在没有参数的情况下调用函数的一种方法是声明一个这样的默认值(这里的值为NULL
):
function rev_epur_str($str = NULL)
{
//code here
}
rev_epur_str(); //will work
此外,测试isset
仅在变量未设置或为NULL时才有效。如果您希望它使用空字符串,您可以尝试使用:
if (empty($str))
{
return false;
}
//etc