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

PHP中str_replace函数使用问题:为何替换操作始终提示未完成?

问题解答

一、代码问题分析

你的代码存在三个核心问题,导致运行结果始终不符合预期:

  1. str_replace的引用参数未加&:第四个参数$i用于接收替换次数,必须通过引用传递(变量前加&),否则$i不会被赋值,始终保持默认值0。
  2. 替换次数判断逻辑错误:你的字符串里只有1个developer,替换后$i的值为1,但你判断条件是$i>1,自然会进入else分支。作业要求只要发生替换就返回true,所以应该判断$i>0。
  3. 未按作业要求返回布尔值:作业明确要求函数返回true或false,但你的代码仅输出提示文本,不符合需求。

修正后的代码如下:

$article = "i am php developer"; 

function check($article, $word, $new_word) { 
    // 调整参数顺序以匹配作业描述的「字符串、单词」,同时保留替换目标词
    str_replace($word, $new_word, $article, $i);
    // 判断是否发生替换并返回布尔值
    $isReplaced = $i > 0;
    // 保留提示输出的同时返回结果
    echo $isReplaced ? "replace is done" : "no replace is done";
    return $isReplaced;
}

check($article, 'developer', 'magic');

二、关于社区用户态度的看法

部分老用户对新开发者态度激进,大多是因为他们觉得新人提问前没做足基础研究(比如没查官方文档、没搜索已有问题),认为这是在浪费社区资源。但直接踩信誉分的行为确实欠妥,社区本就应该是帮助新人成长的地方。不用太在意这类评价,专注解决自己的问题、逐步积累经验就好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 09:54:33