} 一个是实例化Register,另一个是调用offsetSet方法,将index和value设置进去。offset方法很好理解,但是为什么要使用getInstance方法呢?这里建议大家好好看看,这个是结合类静态方法的单例模式。我们一般的单例模式写成: 复制代码 代码如下: class A{ private $_instance; public static function getInstance(){ ... }
protected function __construct(){ ... }
public function setVal(){ ... } }
$a = A::getInstance();
$a- setVal();
这样在调用之前就需要实例化一个类,虽然这个实例化实际上是单例,但感觉还是不舒服这边的register就做到了直接使用静态方法调用A::setVal();大致的代码思路我写了个demo 复制代码 代码如下: class A{ private static $_instance; public static function getInstance(){ if(self::_instance !==null){ return $this- _instance; } else { return new A(); } }
public function __construct(){
}
public static function setV(){ $a = self::getInstance(); $a- setVal(); }