


Solution au problème des paramètres du constructeur de classe en PHP
Le code détaillé est le suivant :
<?php final class Registry { private $data = array(); public function get($key) { return $this->data[$key]; } public function set($key, $value) { $this->data[$key] = $value; } } abstract class Controller { protected $registry; public function construct($registry) { $this->registry = $registry; } } class ControllerCommonHome extends Controller { public function test() { $this->registry->set('load','load'); } } $registry = new Registry(); $con = new ControllerCommonHome($registry); $con->test(); echo $registry->get('load'); ?>
Comment le paramètre $registry est-il transmis lorsque $conobject est initialisé ? Valeur du Passou adresse ? S'il est passé par valeur, alors lorsque l'objet $con exécute la fonction test(), cela ne devrait pas affecter l'objet d'origine $registry, mais en fait, cela affecte la valeur du registre.
Mais si je change $registry en une variable simple, telle que $registry = 123, et que j'attribue une valeur à $registry dans l'objet $con, cette fois, cela n'affecte pas la variable d'origine, qui est toujours 123.
Résoudre
D'accord, clone() Constructeur. Les objets peuvent être clonés. La raison du clonage est que vous ne souhaitez pas modifier son état précédent.
Les objets ne sont pas des variables générales. Veuillez consulter la section suivante de la recherche Google
Transmission d'objets
. PHP5 utilise Zend Engine II, les objets sont stockés dans une structure indépendante Object 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 les 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.
Je n'ai jamais pensé à ce genre de problème auparavant. J'ai seulement cherché des informations après avoir vu votre question
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

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.

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

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

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.

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

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

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