Maison développement back-end tutoriel php Comment php fait-il référence au modèle objet ? Explication détaillée des exemples spécifiques cités

Comment php fait-il référence au modèle objet ? Explication détaillée des exemples spécifiques cités

Jul 08, 2017 am 09:47 AM
php spécifique 模型

PHP a un modèle d'objet à héritage unique et à accès restreint qui peut surcharger De plus, PHP prend en charge les restrictions sur les attributs et méthodes Vous pouvez déclarer. les membres comme privés, interdisant l'accès aux classes extérieures. Enfin, PHP permet à une sous-classe de surcharger les membres de sa classe parent

Le modèle objet de PHP traite les objets de la même manière que tout autre Type de données . différent et est passé par référence. PHP ne vous oblige pas à passer et à renvoyer explicitement des objets par référence. Le modèle objet basé sur la référence sera expliqué en détail à la fin de ce chapitre. C'est la nouvelle fonctionnalité la plus avancée de PHP5.

Avec un modèle objet plus direct, il y a des avantages supplémentaires : une efficacité accrue, moins d'utilisation de la mémoire et une plus grande flexibilité

En PHP Dans les versions précédentes, le script copiait l'objet par défaut. PHP ne fait que déplacer la poignée, ce qui prend moins de temps. L'amélioration de l'efficacité d'exécution du script est due à l'évitement des copies inutiles. Bien que le système d'objets apporte de la complexité, il apporte également des gains d'efficacité d'exécution. En même temps, réduire la copie signifie occuper. moins de mémoire et laissant plus de mémoire pour d'autres opérations, ce qui améliore également l'efficacité

Zand Engine 2 a une plus grande flexibilité . Un développement heureux est de permettre la destruction - exécuter une méthode de classe avant que l'objet ne soit détruit. pour l'utilisation de la mémoire, permettant à PHP de savoir clairement quand il n'y a aucune référence à l'objet et d'allouer la mémoire libérée à d'autres utilisations

Supplément :

Gestion de la mémoire de PHP5

. Les objets passant

PHP5 utilise Zend Engine II, et les objets sont stockés dans des structures indépendantesObject Store, au lieu d'être stockés dans Zval comme les autres variables générales (en PHP4, les objets sont stockés dans Zval comme variables générales). Seul le pointeur de l'objet est stocké dans Zval plutôt que le contenu (valeur). Lorsque nous copions un objet ou transmettons un objet en tant que paramètre à une fonction, nous n'avons pas besoin de copier les données. Conservez simplement le même pointeur d'objet et laissez un autre zval informer le magasin d'objets vers lequel cet objet particulier pointe maintenant. Étant donné que l'objet lui-même se trouve dans le magasin d'objets, toute modification que nous y apporterons affectera toutes les structures zval contenant des pointeurs vers l'objet - se manifestant dans le programme car toute modification apportée à l'objet cible affectera l'objet source. .Cela donne l'impression que les objets PHP sont toujours passés par référence (référence), donc les objets en PHP sont passés par "référence" par défaut, et vous n'avez plus besoin d'utiliser & pour le déclarer comme en PHP4.

Mécanisme de récupération de place

Certains langages, le plus généralement le C, exigent que vous demandiez explicitement une allocation de mémoire lorsque vous créez une structure de données. Une fois que vous avez alloué de la mémoire, vous pouvez stocker des informations dans des variables. Dans le même temps, vous devez également libérer de la mémoire lorsque vous avez fini d'utiliser la variable, afin que la machine puisse libérer de la mémoire pour d'autres variables et éviter de manquer de mémoire.

PHP peut gérer automatiquement la mémoire et effacer les objets qui ne sont plus nécessaires. PHP utilise le comptage de références, un mécanisme simple de garbage collection. Chaque objet contient un compteur de références, et chaque référence connectée à l'objet augmente le compteur de un. Lorsque la référence quitte l'espace de vie ou est définie sur NULL, le compteur est décrémenté de 1. Lorsque le compteur de références d'un objet atteint zéro, PHP sait que vous n'avez plus besoin d'utiliser cet objet et libère l'espace mémoire qu'il occupe.

Par exemple :

Le code est le suivant :

<?php   
class Person{   
}   
function sendEmailTo(){   
}   
$haohappy = new Person( );     
// 建立一个新对象:  引用计数    Reference count = 1   
$haohappy2 = $haohappy;         
// 通过引用复制:  Reference count = 2   
unset($haohappy);             
// 删除一个引用: Reference count = 1   
sendEmailTo($haohappy2);        
// 通过引用传递对象:     
// 在函数执行期间:   
//  Reference count = 2   
// 执行结束后:   
// Reference count = 1   
unset($haohappy2);             
// 删除引用: Reference count = 0 自动释放内存空间   
?>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

See all articles