abstract:<?php/** * Created by PhpStorm. * User: Administrator * Date: 2018-11-19 * Time: 10:21 *///单例模式:一个类仅允许被实例化一次class Wife{}$wife1 = new Wife;$wife2 = new Wife;echo ($wife1 instanceof Wife) ? '是
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018-11-19
* Time: 10:21
*/
//单例模式:一个类仅允许被实例化一次
class Wife
{
}
$wife1 = new Wife;
$wife2 = new Wife;
echo ($wife1 instanceof Wife) ? '是' : '不是';
echo '<br>';
echo ($wife2 instanceof Wife) ? '是' : '不是';
echo '<br>';
echo ($wife1 === $wife2) ? '完全相等' : '不相等';
echo '<br>';
var_dump($wife1, $wife2);
//返回false,二者并不相等 ID不相等
// 类仅被实例化一次即可
echo "<hr><br>";
class Hubby
{
//将构造方法私有化:禁止从外部实例化类
private function __construct() {}
//将克隆方法私有化:禁止从外部克隆该类的实例
private function __clone() {}
//创建内部属性$instance,用来保存当前类实例
protected static $instance = null;
//创建外部接口,用来返回当前类的唯一实例
public static function getInstance()
{
if (is_null(static::$instance)) {
static::$instance = new static();
}
return static::$instance;
}
}
//从类的外部实例化当前类Demo1
$hubby1 = Hubby::getInstance();
$hubby2 = Hubby::getInstance();
echo ($hubby1 instanceof Hubby) ? '是' : '不是';
echo '<br>';
echo ($hubby2 instanceof Hubby) ? '是' : '不是';
echo '<br>';
echo ($hubby1 === $hubby2) ? '完全相等' : '不相等';
echo '<br>';
var_dump($hubby1, $hubby2);
Correcting teacher:查无此人Correction time:2018-11-19 10:47:36
Teacher's summary:很不错,牢记一些模式,会让你写代码的速度更快。加油