You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP:如何实现函数在字符串不存在或为空时返回false?

解决rev_epur_str函数在字符串不存在时返回false的问题

你的代码目前有两个核心问题导致无法达到预期效果,我来一步步帮你修正:

问题1:未传入参数时触发警告且不返回false

你的函数定义要求必须传入$str参数,但调用rev_epur_str()时没有传参,PHP会直接抛出警告,根本不会执行到你后面的判断逻辑。解决方法是把$str设为可选参数,给它设置默认值null。

问题2:isset($str)的判断逻辑无效

isset()函数对于空字符串""会返回true,所以你的判断永远会走到返回$str的分支,这就是为什么调用rev_epur_str("")返回空串而非false的原因。我们需要更精准的判断条件,检查参数是否为null或者空字符串。

修正后的完整代码

function rev_epur_str($str = null) {
    // 先判断字符串是否不存在(未传参或空串/全空格串)
    if ($str === null || trim($str) === '') {
        return false;
    }
    
    // 执行原有的字符串处理逻辑
    $str = implode(' ', array_map('strrev', explode(' ', $str)));
    $str = preg_replace('/\s+/', '', $str);
    
    return $str;
}

测试验证

  • 调用var_dump(rev_epur_str()):会返回bool(false),且不再触发参数缺失警告
  • 调用var_dump(rev_epur_str("")):返回bool(false)
  • 调用var_dump(rev_epur_str("hello world")):返回string(10) "ollehdlrow"(符合原函数的处理逻辑)

额外说明

我特意用了trim($str) === ''来判断,这样如果传入的是全空格的字符串(比如" "),也会被判定为“不存在”并返回false。如果你只希望严格判断空字符串"",可以把条件改成$str === null || $str === ''。

内容的提问来源于stack exchange,提问作者Margaret Osborn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:39:20