快半年没用过php写东西,框架用的,php的基础都丢得差不多了
单态模式的优点,一个对象只生成一次,节省内存提高效率
<?php
class StaticTest
{
//静态成员,
static $obj = null;
/*
* 静态属性不可以由对象通过->操作符来访问。
* 用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。
* 当实例化一个对象时,会调用构造方法
* 设为 private 外部将不可访问
*/
/*private function StaticTest(){
echo "我爱";
}*/
private function __construct(){
echo "我爱";
}
//生成对象,静态成员使用self调用
static function getObj(){
if(is_null(self::$obj)) //判断限制对象生成次数
self::$obj = new StaticTest;
return self::$obj;
}
function test(){
echo "苍老师!!";
}
//析构函数,会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行
function __destruct(){
echo "苍老师生成了1次";
}
}
//多次调用
$a = StaticTest::getObj();
$a = StaticTest::getObj();
$a = StaticTest::getObj();
$a = StaticTest::getObj();
$a->test();