PHP之单例模式(职责模式)
简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务;
单例类:
1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;
2、拥有一个保存类的实例的静态成员变量
3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化)
另外,需要创建__clone()方法防止对象被复制(克隆)
<?php /** * Created by PhpStorm. * User: * Date: 2017/1/2 * Time: 下午3:32 */ class Single { //保存实例的私有静态实例变量 private static $instance; //private标记的构造方法,方式通过其他方式实例化 private function __construct() { echo "this is construct function"; } //创建clone方法防止被克隆 public function __clone() { trigger_error("Clone is not allowed ", E_USER_ERROR); } //单例方法,用户访问实例的公共静态方法 public static function shareInstance() { //instanceof:判断instance是不是self的实例或者子类 if (!(self::$instance instanceof self)){ self::$instance = new self(); } return self::$instance; } }
附
trigger_error()
函数创建用户级别的错误消息。
trigger_error()
函数能结合内置的错误处理器所关联,或者可以使用用户定义的函数作为新的错误处理程序(set_error_handler())。
trigger_error(errormsg,errortype);
参数 | 描述 |
---|---|
errormsg | 必需。规定错误消息。最大长度 1024 字节。 |
errortype | 可选。规定错误类型。可能的值:E_USER_ERRORE_USER_WARNINGE_USER_NOTICE(默认) |
简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务;
单例类:
1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;
2、拥有一个保存类的实例的静态成员变量
3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化)
另外,需要创建__clone()方法防止对象被复制(克隆)
<?php /** * Created by PhpStorm. * User: * Date: 2017/1/2 * Time: 下午3:32 */ class Single { //保存实例的私有静态实例变量 private static $instance; //private标记的构造方法,方式通过其他方式实例化 private function __construct() { echo "this is construct function"; } //创建clone方法防止被克隆 public function __clone() { trigger_error("Clone is not allowed ", E_USER_ERROR); } //单例方法,用户访问实例的公共静态方法 public static function shareInstance() { //instanceof:判断instance是不是self的实例或者子类 if (!(self::$instance instanceof self)){ self::$instance = new self(); } return self::$instance; } }
附
trigger_error()
函数创建用户级别的错误消息。
trigger_error()
函数能结合内置的错误处理器所关联,或者可以使用用户定义的函数作为新的错误处理程序(set_error_handler())。
trigger_error(errormsg,errortype);
参数 | 描述 |
---|---|
errormsg | 必需。规定错误消息。最大长度 1024 字节。 |
errortype | 可选。规定错误类型。可能的值:E_USER_ERRORE_USER_WARNINGE_USER_NOTICE(默认) |
更多PHP之单例模式(职责模式)相关文章请关注PHP中文网!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Alipay Php ...

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Pengenalan rasmi kepada ciri yang tidak menyekat ReactPhp yang mendalam tafsiran mengenai ciri-ciri yang tidak menyekat ReactPhp telah menimbulkan banyak soalan pemaju: "ReactPhpisnon-blockingbydefault ...
