public function __construct($template = '', array $data = array())
{
if ($template !== '') {
$this->setTemplate($template);
}
if (!empty($data)) {
foreach ($data as $name => $value) {
$this->$name = $value;
}
}
}
从devshed复合视图教程(http://www.devshed.com/c/a/PHP/PHP-Composite-View-Design-Pattern-Introducing-的密钥-概念/ 1 /)。无论如何,我有点混淆,$this->$name = $value;
声明。PHP代码:使用此关键字
我通常使用$this
作为类的属性和/或在上述类中调用类的方法时。另外声明有两个$
's。这很奇怪!那么$this->$name = $value
是指在foreach循环中定义的$name
?如果有的话可以解释这个用法或背后的逻辑吗?
预先感谢您。
这里的权利,但只有真实,如果'名称'不存在作为不动产。在这种情况下,不会调用魔术属性。 – KingCrunch 2010-12-14 09:35:35
@KingCrunch - 是的,这是真的,将编辑我的回复,使其更清晰 – mrwooster 2010-12-14 09:38:47
我想我明白了。在搞乱了AbstractView类之后。看来$ this - > $ name是指由__set动态创建的$ name。所以如果说,类属性没有在类中显式定义,用户基本上可以这样做:$ foo = new AbstractView; $ foo-> bar ='stuff';因此调用__set函数并为abstractview类创建一个bar类属性。 $ this => $ name = $ value语句指的是$ name变量,一个占位符,用于通过AbstractView类定义的其他魔术方法,因此额外的$。非常感谢! – mythicalprogrammer 2010-12-14 18:21:57