Php 如何检查字符串是否不';不存在,然后返回false?
如果$str不存在,我试图使我的代码返回false 以下是我尝试过的(但没有成功): 输出显示:Php 如何检查字符串是否不';不存在,然后返回false?,php,Php,如果$str不存在,我试图使我的代码返回false 以下是我尝试过的(但没有成功): 输出显示: PHP Warning: Missing argument 1 for rev_epur_str() 它只返回一个错误而不是false var_dump(rev_epur_str("")); // returns string(0) "" instead of FALSE 如果$str为空,如何返回false 而不是返回布尔值、回显字符串,因此您可以确定其工作是否正常: function r
PHP Warning: Missing argument 1 for rev_epur_str()
它只返回一个错误而不是false
var_dump(rev_epur_str("")); // returns string(0) "" instead of FALSE
如果
$str
为空,如何返回false 而不是返回布尔值、回显字符串,因此您可以确定其工作是否正常:
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';
}
}
不是返回布尔值,而是回显字符串,这样您就可以确定它是否工作正常:
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';
}
}
你必须像这样调用函数 var_dump(rev_epur_str($str))
意味着$str应该有一些价值 您必须像这样调用函数 var_dump(rev_epur_str($str))
意味着$str应该有一些价值 您的代码会抛出错误,因为您向函数声明了一个参数,并且在没有任何参数的情况下调用它 解决此问题并允许无参数调用函数的一种方法是声明如下默认值(此处使用值
NULL
):
此外,测试isset
仅在变量从未设置或为空时有效。如果您想让它使用空字符串,可以尝试使用:
if (empty($str))
{
return false;
}
//etc
您的代码会引发错误,因为您向函数声明了一个参数,并且在没有任何参数的情况下调用了它 解决此问题并允许无参数调用函数的一种方法是声明如下默认值(此处使用值
NULL
):
此外,测试isset
仅在变量从未设置或为空时有效。如果您想让它使用空字符串,可以尝试使用:
if (empty($str))
{
return false;
}
//etc
您可以在PHP中设置参数的默认值。下面的代码使
$str
成为可选参数,同时进行检查以返回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
注意:原始代码中显示的错误是完全有效的,您已将函数设置为接受一个参数,因此必须向其传递一个参数,也就是说,除非您对所述参数使用默认值(如上所述)
现场示例
阅读材料
您可以在PHP中设置参数的默认值。下面的代码使
$str
成为可选参数,同时进行检查以返回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
注意:原始代码中显示的错误是完全有效的,您已将函数设置为接受一个参数,因此必须向其传递一个参数,也就是说,除非您对所述参数使用默认值(如上所述)
现场示例
阅读材料
不起作用,所以你看到了什么?你能告诉我们调用函数的位置吗
rev\u epur\u str
?你应该给它一个字符串作为argument@Kaddath只是为了更清楚地编辑它,这是预期的输出,因为需要$str
。如果您愿意,您可以将$str
设置为可选,如果它为空/未设置,则返回false
,尽管这会使它变得冗长。@Script47如果$str为空,我如何返回false?不起作用,那么您可以看到什么?您能告诉我们调用函数rev_epur_str
的位置吗?你应该给它一个字符串作为argument@Kaddath只是为了更清楚地编辑它,这是预期的输出,因为需要$str
。如果需要,可以将$str
设置为可选,如果它为空/未设置,则返回false
,但这会使其冗长。@Script47如果$str为空,如何返回false?它只返回NULL它只返回NULL