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

PHP实现Java字符偏移逻辑遇"A non-numeric value encountered"错误求助

问题解决:PHP字符ASCII运算的非数值错误

错误原因

Java的char类型本质是UTF-16编码的数值类型,可直接参与加减运算;但PHP中通过$text{$i}获取的是字符串类型的单个字符,无法直接和整数$key执行减法操作,这就是触发Warning: A non-numeric value encountered的核心原因。

修正后的PHP代码

需要先通过ord()函数将字符转换为对应的ASCII数值,运算完成后再用chr()函数转回字符:

$key = 6;
$text = 'Sample Text';
for ($i = 0; $i < strlen($text); $i++) {
    $char = $text[$i]; // $text{$i}写法也等价
    $ascii = ord($char); // 将字符转为ASCII数值
    $ascii -= $key; // 执行减法运算
    echo chr($ascii); // 转回字符并输出
}

验证结果

运行上述代码后,输出结果与Java代码完全一致:

M[gjf_N_rn

内容的提问来源于stack exchange,提问作者Just Wonderi'n Around

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:45:44