如何解决PHP Array callback must have exactly two elements报错
报错触发原因
你在第14行错误使用了PHP超全局数组$_POST的元素访问语法:PHP中数组类型变量读取元素需要使用方括号[],你写代码时误用了圆括号(),此时PHP会将$_POST('name')解析为对名为$_POST的回调函数的调用。而数组格式的PHP回调必须是包含「对象/类名、方法名」的两元素结构,不符合规则就会抛出你看到的致命错误。
修复方案
直接把第14行的圆括号替换为方括号即可,修正后的代码如下:
$name = $_POST['name'];
相关注意事项
- PHP所有超全局数组(包括
$_GET、$_POST、$_COOKIE、$_SESSION、$_FILES等)访问内部元素时,都必须使用方括号语法,禁止用圆括号 - 读取POST参数前建议先用
isset()或者empty()做存在性校验,比如$name = isset($_POST['name']) ? trim($_POST['name']) : '';,避免触发「未定义数组索引」的警告 - 直接从前端传入的POST参数属于不可信输入,不要直接拼接到SQL语句、直接输出到前端页面,需要做对应的转义、校验处理,避免出现SQL注入、XSS跨站脚本等安全问题
内容的提问来源于stack exchange,提问作者Jameel
相关产品推荐
相关产品推荐

