Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查字符串是否不';不存在,然后返回false?_Php - Fatal编程技术网

Php 如何检查字符串是否不';不存在,然后返回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

如果$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 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