2017-02-02 71 views
2

我升级我的网站PHP 7,现在得到这个错误在前端:声明应该与PHP兼容7

Warning: Declaration of Works_Walker::start_el(&$output, $category, $depth, $args) should be compatible with Walker_Category::start_el(&$output, $category, $depth = 0, $args = Array, $id = 0) 

,这指的是代码为:

class Works_Walker extends Walker_Category { 
function start_el(&$output, $category, $depth, $args) 

当我编辑此代码以匹配父代我得到语法错误。

class Works_Walker extends Walker_Category { 
function start_el(&$output, $category, $depth = 0, $args = Array, $id = 0) 

“数组”似乎是语法错误的原因。我希望这对诊断有帮助。

+0

它告诉你在消息中的权利。您的函数签名必须与您正在扩展的接口/函数签名匹配。这包括“默认”值。 – noahnu

+0

[方法声明应该与PHP中的父级方法兼容]的可能重复(http://stackoverflow.com/questions/3115388/declaration-of-methods-should-be-compatible-with-parent-methods-in- php) – noahnu

+0

感谢您的链接和解释。不幸的是我找不到我之前发布的代码中的任何代码引用到我的网站Walker_Category。我不确定我可以在哪里更改这些签名以匹配它们。 – user3612498

回答

2

Array是一种类型。您正在寻找array()(或[]),因为您正在分配默认的。即$args = Array应该是$args = array()。作为参考: 4.7.2/Walker_Category

+0

修好了!感谢您的帮助。 – user3612498

相关问题