PHP报错:命名参数后无法使用位置参数问题排查
问题原因与解决方案
这个报错的核心是违反了PHP命名参数的语法规则:一旦使用命名参数,后续所有参数必须也使用命名参数,不能在命名参数之后使用位置参数。
你写的代码:
$name = explode( separator: '.', $name );
这里第一个参数用了命名参数separator: '.',第二个参数$name是位置参数,这不符合PHP的参数传递规则,所以触发了Cannot use positional argument after named argument错误。
正确的写法有两种:
- 全用位置参数(最常用的写法,符合explode函数的参数顺序):
$name = explode('.', $name);
- 全用命名参数:
$name = explode(separator: '.', string: $name);
注:explode函数的参数顺序是「分隔符」在前,「目标字符串」在后,以上两种写法都能实现你拆分图片名称与扩展名的需求。
内容的提问来源于stack exchange,提问作者rakib
相关产品推荐
相关产品推荐

