什么原因引起注意:间接修改过载的财产?

时间:2016-12-18 00:48:18

标签: php opencart

  

注意:间接修改重载属性ControllerProductProduct :: $ data对第57​​行的/home/user/public_html/example.com/catalog/controller/product/product.php没有影响

第57行:$this->data['breadcrumbs'][] = array(

$this删除$this->data可以解决错误。

我不完全理解为什么从控制器中取出元素会使代码按原样运行?

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本?

PRE v2.0:在这种情况下,更改变量不会"使代码正常工作*" 并且您&#39 ;会丢失你的面包屑。您不应该更改变量 - 它应保留为$this->data。您只需要首先初始化属性:

$this->data['breadcrumbs'] = array();

然后您可以修改数组。产品控制器应该已经有了这条线,所以我假设你修改了核心代码。

POST v2.0 +:变量确实应该是$data['breadcrumbs']而不是类属性。再次,看起来有人修改了核心代码并引入了这个bug。

尽管您确定自己知道自己在做什么,但请不要修改核心代码。