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

PHP 7中Only variables should be passed by reference错误解决问询

解决PHP 7中"Only variables should be passed by reference"错误

错误原因

PHP 7对引用参数的校验更严格:被声明为引用(带&)的参数,必须传入实际变量,不能直接传递表达式、函数返回值或字面量——因为引用需要指向一个可寻址的内存空间,临时值不满足这个要求。

修改方案(仅修改Line A,无需改动goAhead方法)

把原本直接传给goAhead()的非变量值,先赋值给临时变量,再将临时变量传入方法。

举个实际代码修改示例:
假设原Line A代码是:

$sapDiagram->goAhead($_POST['input_b'], explode(',', $_POST['input_c']));

修改后:

// 先将表达式结果存入临时变量
$tempInputC = explode(',', $_POST['input_c']);
// 传递临时变量给引用参数
$sapDiagram->goAhead($_POST['input_b'], $tempInputC);

为什么不修改goAhead方法

因为该方法在多处代码中被调用,移除参数前的&会破坏现有逻辑——比如其他调用处可能依赖引用传递来修改外部变量,改动后会导致这些场景失效。因此优先修改Line A的调用逻辑更安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:02:38