Initializing array element with reference returned by function not possible
未关闭
还没有人认领这个 Issue。
Bug
Category: Engine
Status: Verified
- 主要语言
- C
- 星标
- 40.4k
- 派生
- 8.1k
- 平均合并
- 2 天 13 小时
- 30 天内合并 PR
- 96
描述
Description
Please note that when removing the ampersand at line 13 it seems to work but then it's no longer a reference.
<?php
function &moh()
{
static $o;
return $o;
}
// works
$jo = [0];
$jo[0] = &moh();
// shows error
$jo = [&moh()];
Resulted in this output:
Fatal error: Can't use function return value in write context in /home/user1/Schreibtisch/test.php on line 13
But I expected this output instead:
PHP Version
PHP 8.4.4
Operating System
3v4l
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先运行 issue 中的 PHP 8.4.4 reproducer,将数组初始化器与之后使用 &moh() 的赋值进行比较。issue 没有指出源文件或测试;要完成这项工作,需要确定函数在数组初始化器中返回引用时的预期行为,并通过回归测试覆盖该行为。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- php
- 领域
- compilers
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100