Maison développement back-end tutoriel php 利用好PHP5.3的新特性,实现单例模式_PHP教程

利用好PHP5.3的新特性,实现单例模式_PHP教程

Jul 13, 2016 am 10:41 AM
3 php5 利用 新特性

5.3以前也可实现,但代码较繁琐, 如下:

class MOrder extends SModel{
protected static $handle; //单例句柄

private function __construct(){
//something
}

/**
* 获取本类单例的方法,公开
*
* @return MOrder
*/
public static function instance() {
if(self::$handle){
return self::$handle;
}

$class = __CLASS__;
self::$handle = new $class();
return self::$handle;
}

//otherthing

}


5.3增加延迟静态绑定(这个词真别扭)

代码实现如下

class SModel {
/**
* 获取单例句柄,返回具体模型类的实例对象
*/
protected static function instance() {
if(static::$handle){
return static::$handle;
}

$class = get_called_class();
static::$handle = new $class();
return static::$handle;
}

//父类something

}


class MGoods extends SModel{
/**
* 获取本类单例的方法,公开
* @return MGoods
*/
public static function instance(){
return parent::instance();
}
protected static $handle; //单例句柄
protected function __construct(){
//something
}

//otherthing

}


通过修改,子类的实现代码减少一部分,转由父类实现

实话说,仍很麻烦,如果PHP自己实现singleton就好了.


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/678027.htmlTechArticle5.3以前也可实现,但代码较繁琐, 如下: class MOrder extends SModel{ protected static $handle; //单例句柄 private function __construct(){ //something } /** * 获取本类...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre php5 et php8 Quelle est la différence entre php5 et php8 Sep 25, 2023 pm 01:34 PM

Les différences entre php5 et php8 concernent les performances, la structure du langage, le système de types, la gestion des erreurs, la programmation asynchrone, les fonctions de bibliothèque standard et la sécurité. Introduction détaillée : 1. Amélioration des performances. Par rapport à PHP5, PHP8 présente une énorme amélioration des performances. PHP8 introduit un compilateur JIT, qui peut compiler et optimiser certains codes d'exécution à haute fréquence, améliorant ainsi la vitesse d'exécution. PHP8 introduit de nouvelles structures et fonctions de langage. PHP8 prend en charge les paramètres nommés, permettant aux développeurs de transmettre les noms des paramètres au lieu de l'ordre des paramètres, etc.

Comment utiliser GitLab pour la gestion des documents de projet Comment utiliser GitLab pour la gestion des documents de projet Oct 20, 2023 am 10:40 AM

Comment utiliser GitLab pour la gestion des documents de projet 1. Introduction générale Dans le processus de développement logiciel, les documents de projet sont des informations très importantes. Ils peuvent non seulement aider l'équipe de développement à comprendre les besoins et la conception du projet, mais également fournir une référence à l'équipe de test. et les clients. Afin de faciliter le contrôle de version et la collaboration en équipe sur les documents de projet, nous pouvons utiliser GitLab pour la gestion des documents de projet. GitLab est un système de contrôle de version basé sur Git. En plus de prendre en charge la gestion du code, il peut également gérer les documents de projet. 2. Configuration de l'environnement GitLab Tout d'abord, je

Sortie de PHP 8.3 : aperçu des nouvelles fonctionnalités Sortie de PHP 8.3 : aperçu des nouvelles fonctionnalités Nov 27, 2023 pm 12:52 PM

Sortie de PHP8.3 : aperçu des nouvelles fonctionnalités À mesure que la technologie continue de se développer et que les besoins évoluent, les langages de programmation sont constamment mis à jour et améliorés. En tant que langage de script largement utilisé dans le développement Web, PHP s'est constamment amélioré pour offrir aux développeurs des outils plus puissants et plus efficaces. La version PHP 8.3 récemment publiée apporte de nombreuses nouvelles fonctionnalités et améliorations tant attendues. Jetons un coup d'œil à ces nouvelles fonctionnalités. Initialisation des propriétés non nulles Dans les versions précédentes de PHP, si une propriété de classe ne se voyait pas explicitement attribuer une valeur, sa valeur

Comment changer le port 80 en php5 Comment changer le port 80 en php5 Jul 24, 2023 pm 04:57 PM

Comment changer le port 80 dans php5 : 1. Modifiez le numéro de port dans le fichier de configuration du serveur Apache ; 2. Modifiez le fichier de configuration PHP pour vous assurer que PHP fonctionne sur le nouveau port ; 3. Redémarrez le serveur Apache et l'application PHP le fera. commencez à exécuter sur le nouveau port.

Que signifie la vidéo recommandée par TikTok ? Comment utiliser Douyin pour recommander des vidéos ? Que signifie la vidéo recommandée par TikTok ? Comment utiliser Douyin pour recommander des vidéos ? Mar 27, 2024 pm 03:01 PM

En tant que plateforme sociale de vidéos courtes de renommée mondiale, Douyin a gagné la faveur d'un grand nombre d'utilisateurs grâce à son algorithme de recommandation personnalisé unique. Cet article approfondira la valeur et les principes de la recommandation vidéo Douyin pour aider les lecteurs à mieux comprendre et à utiliser pleinement cette fonctionnalité. 1. Qu'est-ce que la vidéo recommandée par Douyin ? La vidéo recommandée par Douyin utilise des algorithmes de recommandation intelligents pour filtrer et proposer du contenu vidéo personnalisé aux utilisateurs en fonction de leurs intérêts et de leurs habitudes comportementales. La plateforme Douyin analyse l'historique de visionnage des utilisateurs, le comportement des likes et des commentaires, les enregistrements de partage et d'autres données pour sélectionner et recommander les vidéos qui correspondent le mieux aux goûts des utilisateurs à partir d'une immense vidéothèque. Ce système de recommandation personnalisé améliore non seulement l'expérience utilisateur, mais aide également les utilisateurs à découvrir davantage de contenu vidéo correspondant à leurs préférences, améliorant ainsi la fidélité des utilisateurs et leur taux de rétention. à ceci

Un guide pour découvrir les nouvelles fonctionnalités de PHP8 et acquérir une compréhension approfondie des dernières technologies Un guide pour découvrir les nouvelles fonctionnalités de PHP8 et acquérir une compréhension approfondie des dernières technologies Dec 23, 2023 pm 01:16 PM

Une analyse approfondie des nouvelles fonctionnalités de PHP8 pour vous aider à maîtriser les dernières technologies Au fil du temps, le langage de programmation PHP n'a cessé d'évoluer et de s'améliorer. La version PHP8 récemment publiée offre aux développeurs de nombreuses nouvelles fonctionnalités et améliorations intéressantes, apportant plus de commodité et d'efficacité à notre travail de développement. Dans cet article, nous analyserons en profondeur les nouvelles fonctionnalités de PHP8 et fournirons des exemples de code spécifiques pour vous aider à mieux maîtriser ces dernières technologies. Le compilateur JIT PHP8 introduit la compilation JIT (Just-In-Time)

blendOS 3 : le système de distribution immuable est sur le point d'être publié, prenant en charge jusqu'à 9 distributions Linux blendOS 3 : le système de distribution immuable est sur le point d'être publié, prenant en charge jusqu'à 9 distributions Linux Jun 06, 2023 pm 05:11 PM

Selon les informations du 6 juin, le développeur RudraSaraswat a annoncé le système de distribution immuable qu'il développe, blendOS3, et a promis d'apporter de nouvelles fonctions et fonctionnalités aux utilisateurs. Le système prendra en charge jusqu'à neuf distributions Linux et offrira une nouvelle façon de mettre à jour sans utiliser de référentiel de packages. Selon la compréhension de l'éditeur, blendOS3 est un système de distribution qui intègre ArchLinux, FedoraLinux et Ubuntu. Dès la sortie de blendOS2 en avril de cette année, le système a introduit la technologie WayDroid, permettant aux utilisateurs d'exécuter des applications Android sur le système. L'un des changements les plus importants apportés par blendOS3 est une toute nouvelle mise à jour

Quelles sont les nouvelles fonctionnalités de php8 Quelles sont les nouvelles fonctionnalités de php8 Sep 25, 2023 pm 01:34 PM

Les nouvelles fonctionnalités de php8 incluent le compilateur JIT, la déduction de type, les paramètres nommés, les types d'union, les propriétés, les améliorations de la gestion des erreurs, la prise en charge de la programmation asynchrone, les nouvelles fonctions de bibliothèque standard et les extensions de classe anonymes. Introduction détaillée : 1. Compilateur JIT, PHP8 introduit le compilateur JIT, ce qui constitue une amélioration importante des performances. Le compilateur JIT peut compiler et optimiser certains codes d'exécution à haute fréquence en temps réel, améliorant ainsi la vitesse d'exécution. 2. Dérivation de type, PHP8 ; introduit la fonction d'inférence de type, permettant aux développeurs de déduire automatiquement le type de variables lors de la déclaration des variables, etc.

See all articles