首页 > 作文

PHP单例模式实例分析【防继承,防克隆操作】

更新时间:2023-04-07 08:40:31 阅读: 评论:0

本文实例讲述了php单例模式。分享给大家供大家参考,具体如下:

<?php//单列模式// //1.普通类// class singleton{// }// $s1 = new singleton();// $s2 = new singleton();// //注意,2个变量是同1个对象的时候才全等// if ($s1 === $s2) {//   echo '是一个对象';// }el{//   echo '不是一个对象';// }// //2.封锁new操作// class singleton法治的作用{//   protected function __construct(){}// }// $s1 = new singleton();//php fatal error: call to protected singleton::__construct()// //3.留个接口来new对象// class singleton{//   protected function __construct(){}//   public static function getins(){//     return new lf();//   }// }// $s1 = singleton::getins();// $s2 = singleton::getins();// if ($s1 === $s2) {//   echo '是一个对象';// }el{//   echo '不是一个对象';// }// //4.getins先判断实例// class singleton{//   protected static $ins = null;//   private function __construct(){}//   public static function getins(){//     if (lf::$ins === null) {//       lf::$ins = new lf();//     }//     return lf::$ins;//   }// }// $s1 = singleton::getins();// $s2 = singleton::getins();// if ($s1 === $s2) {//   echo '是一个对象';// }el{//   echo '不是一个对象';// }// //继承// class a extends singleton{//   public function __construct(){}// }// echo '<br>';// $s1 = new a();// $s2 = new a();// if ($s1 === $s2) {//  一甲普通话 echo '是同一个对象';// }el{//   echo为运动员加油的稿子 '不是同一个对象';// }// //5.防止继承时被修改了权限// class singleton{//   protected static $ins = null;//   //方法加final则方法不能被覆盖,类加final则类不能被继承//   final private function __construct(){}//   public static function getins(){//     if (lf::$ins === null) {//       lf::$ins = new lf();//     }//     return lf::$ins;//   }// }// $s1 = singleton::getins();// $s2 = singleton::getins();// if ($s1 === $s2) {//   echo '是同一个对象';// }el{//   echo '不是同一个对象';// }// //继承// // class a extends singleton{// //   public function __construct(){}// // }// //cannot override final method singleton::__construct()// echo '<hr>';// $s1 = singleton::getins();// $s2 = cl四川石油大学one $s1;// if ($s1 === $s2) {//   echo '是同一个对象';// }el{//   echo '不是同一个对象';// }//6.防止被cloneclass singleton{  protected static $ins = null;  //方法加final则方法不能被覆盖,类加final则类不能被继承  final private function __construct(){}  public static function getins(){   圆明园的毁灭教案 if (lf::$ins === null) {      lf::$ins = new lf();    }    return lf::$ins;  }  // 封锁clone  final private function __clone(){}}$s1 = singleton::getins();$s2 = clone $s1; //call to private singleton::__clone() from contextif ($s1 === $s2) {  echo '是同一个对象';}el{  echo '不是同一个对象';}

更多关于php相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《php数组(array)操作技巧大全》、《php基本语法入门教程》、《php运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家php程序设计有所帮助。

本文发布于:2023-04-07 08:40:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/f17c30204ad7ab314b3db1669ec64f28.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP单例模式实例分析【防继承,防克隆操作】.doc

本文 PDF 下载地址:PHP单例模式实例分析【防继承,防克隆操作】.pdf

标签:对象   是一个   被覆   方法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图