十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍怎么在PHP中利用单例模式实现防继承和防克隆操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站公司2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元海口做网站,已为上家服务,为海口各地企业和个人服务,联系电话:028-86922220具体如下:
'; // $s1 = new A(); // $s2 = new A(); // if ($s1 === $s2) { // echo '是同一个对象'; // }else{ // echo '不是同一个对象'; // } // //5.防止继承时被修改了权限 // class singleton{ // protected static $ins = null; // //方法加final则方法不能被覆盖,类加final则类不能被继承 // final private function __construct(){} // public static function getIns(){ // if (self::$ins === null) { // self::$ins = new self(); // } // return self::$ins; // } // } // $s1 = singleton::getIns(); // $s2 = singleton::getIns(); // if ($s1 === $s2) { // echo '是同一个对象'; // }else{ // echo '不是同一个对象'; // } // //继承 // // class A extends singleton{ // // public function __construct(){} // // } // //Cannot override final method singleton::__construct() // echo '
'; // $s1 = singleton::getIns(); // $s2 = clone $s1; // if ($s1 === $s2) { // echo '是同一个对象'; // }else{ // echo '不是同一个对象'; // } //6.防止被clone class singleton{ protected static $ins = null; //方法加final则方法不能被覆盖,类加final则类不能被继承 final private function __construct(){} public static function getIns(){ if (self::$ins === null) { self::$ins = new self(); } return self::$ins; } // 封锁clone final private function __clone(){} } $s1 = singleton::getIns(); $s2 = clone $s1; //Call to private singleton::__clone() from context if ($s1 === $s2) { echo '是同一个对象'; }else{ echo '不是同一个对象'; }
关于怎么在PHP中利用单例模式实现防继承和防克隆操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。