部分错误的解决办法(Deprecated: Required parameter $xxx follows optional parameter $yyy )
函数的参数带有默认值时,如果不把这个参数最后,PHP8会提示报错。
这类报错在升级PHP 8后也非常常见。这类错误多是来自一些主题或者是插件。其实这类的错误早就存在多年,但是一直未受到太多重视,最终在PHP 8的时候变成了Deprecated报错。
以下是出现错误代码:
function xxxxx( $avatar, $id_or_email, $size=30, $default, $alt )
其实出现的问题很简单,错误的点就在$size=30这个参数。由于PHP规定,在可选参数中,若有默认值的参数不在最后一个,将会直接忽视它的默认值。所以这样写根本没必要,直接把默认值删除即可:
function xxxxx( $avatar, $id_or_email, $size, $default, $alt )