PHP不使用array_push向数组添加元素失败问题求助
问题排查与修复
首先你的调用代码存在语法错误,这是数组长度始终不变的核心原因:
在调用push_curr_value的代码行末尾,你错误地用了方括号]来闭合函数调用,正确的应该是圆括号)。
错误代码:
push_curr_value($_POST['push_value'], $list];
修正后的代码:
push_curr_value($_POST['push_value'], $list);
错误影响说明
PHP解析到语法错误时会直接中断代码执行,导致push_curr_value函数根本没被调用,外部的$list数组完全没被修改,自然长度一直是初始的0。
函数本身的正确性确认
你的函数逻辑是没问题的:通过引用参数&$list,函数内部对数组的修改会直接作用到外部变量。修正语法错误后,每次提交push_value参数,数组都会新增元素,sizeof($list)的输出也会正确递增。
比如第一次提交push_value=foo,函数会输出foo<br />和1;第二次提交push_value=bar,会输出foo<br />bar<br />和2,完全符合预期。
内容的提问来源于stack exchange,提问作者JamHammana
相关产品推荐
相关产品推荐

