Joomla:为什么使用JView / assignRef()而不是仅仅分配值

时间:2015-10-27 01:44:12

标签: php joomla

当我尝试搜索此assignRef()函数的定义时,我遇到了这个问题:Whats is assignRef() function in joomla 2.5

在阅读答案后,我仍然有一个问题: 在我看来,这个函数用于为对象创建一个键并为其赋值,如

$this->assignRef('messages', $messages)

如果这是正确的,那么为什么不做$ this-> messages = $ messages?

2 个答案:

答案 0 :(得分:1)

我认为这些问题可以回答你的问题。

Whats is assignRef() function in joomla 2.5

Joomla 3 - What to use instead of assignRef?

根据上面的答案,这是一个与PHP相关的事情。

  • 旧版本的Joomla(1.5)使用的PHP版本是< PHP 5.2
  • 较新版本的Joomla(2.5)使用了PHP版本> PHP 5.2

在旧版本的php中分配像这样的变量

$this->messages= $messagesOrig;

php创建一个对象 $ messagesOrig 变量的副本,并将其分配给$this->messages。 这意味着您使用 $ this->消息进行的任何更改都不会影响原始对象( $ messagesOrig 指的是对象)。 所以你必须使用 assignRef(),你将使用/编辑原始对象为 $ messagesOrig 引用

$this->assignRef('messages', $messagesOrig)

在较新版本的php默认情况下,php会分配对原始对象的引用。所以你不需要使用 assignRef()

<强>参考文献:

Joomla 3 - What to use instead of assignRef?

https://docs.joomla.org/API17:JView::assignRef

PHP References Explained

答案 1 :(得分:1)

Joomla!3中已弃用

JView[Legacy]::assign()JView[Legacy]::assignRef(),原文为PHP语法。