我有以下代码,
<?php
class Templater
{
static $params = array();
public static function assign($name, $value)
{
self::$params[] = array($name => $value);
}
public static function draw()
{
self::$params;
}
}
$test = Templater::assign('key', 'value');
$test = Templater::draw();
print_r($test);
如何更改此脚本以便我可以使用它?
$test = Templater::assign('key', 'value')->assign('key2', 'value2')->draw();
print_r($test);
最佳答案
您不能使用 Method Chaining使用静态方法,因为您不能返回类级别范围(return self
不会)。将您的方法更改为常规方法,并在您希望允许链接的每个方法中返回 $this
。
请注意,您不应使用 T_PAAMAYIM_NEKUDOTAYIM
访问实例方法,因为它会引发 E_STRICT
通知。使用 T_OBJECT_OPERATOR
调用实例方法。
另见:
关于PHP 面向对象 : Method Chaining,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2990952/