优点:当我们需要一个单例模式的对象时,只需调用getInstance方法(静态方法可以在全局范围内被访问),获取先前实例化的对象,无需重新实例化
单例模式的三个要点:
(1)需要一个保存类的唯一实例的静态成员变量:
(2)设置魔术方法__clone();访问权限为private
(3)必须提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一实例的一个引用
代码:
<?php
//二级树结构
class Tree{
//用于存放实例化的对象
static private $_instance = null;
//公共静态方法获取实例化的对象
static public function getInstance() {
if (!(self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
//私有克隆
private function __clone() {}
//私有构造
private function __construct() {}
//得到二级树型结构
public function getTree(Array $_all,$_id){
foreach($_all as $_key=>$_value){
$_value->sid == 0?$_mainNav[]=$_value:$_childNav[]=$_value;
if($_value->id == $_id){ //主类
$_resultNav[0] = $_value;
$_result