PHP 之 this self parent static 对比
this 绑定的是当前已经实例化的对象 这样长出现的问题: 如果你在一个父类中使用$this调用当前一个类的方法或者属性,如果这个类被继承,且在相应的子类中有调用的属性或者方法是,则父类中的$this调用的方法或者属性会使用子类中的方法。 ? php class basePa
this 绑定的是当前已经实例化的对象
这样长出现的问题: 如果你在一个父类中使用$this调用当前一个类的方法或者属性,如果这个类被继承,且在相应的子类中有调用的属性或者方法是,则父类中的$this调用的方法或者属性会使用子类中的方法。
<span>php </span><span>class</span><span> baseParent { </span><span>static</span> <span>$counter</span> = 0<span>; </span><span>function</span><span> getName() { </span><span>return</span> 'baseParent'<span>; } </span><span>function</span><span> printName() { </span><span>echo</span> <span>$this</span>->getName() . "\n"<span>; } } </span><span>class</span> base <span>extends</span><span> baseParent { </span><span>static</span> <span>$counter</span> = 0<span>; </span><span>function</span><span> addCounter() { </span><span>return</span> self::<span>$counter</span> +=1<span>; } </span><span>function</span><span> getName() { </span><span>return</span> 'base'<span>; } } </span><span>$one</span> = <span>new</span><span> base(); </span><span>$one</span>->printName();
输出: base
parent 指向当前对象的父类的
self 指向当前类本身的,不指向任何已经实例化的对象的,一般用于指向类中的静态变量和静态方法: 因为静态方法和静态的变量是不能实例化到对象当中的,它只存在于当前类中
<span>php </span><span>class</span><span> baseParent { </span><span>static</span> <span>$counter</span> = 0<span>; } </span><span>class</span> base <span>extends</span><span> baseParent { </span><span>function</span><span> addCounter() { </span><span>return</span> self::<span>$counter</span> +=1<span>; } } </span><span>$one</span> = <span>new</span><span> base(); </span><span>echo</span> <span>$one</span>->addCounter() . "\n"<span>; </span><span>$two</span> = <span>new</span><span> base(); </span><span>echo</span> <span>$two</span>->addCounter() . "\n"<span>; </span><span>echo</span> baseParent::<span>$counter</span>;
输出:1 2 2
static 后期静态绑定:
static::不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为"静态绑定",
因为它可以用于(但不限于)静态方法的调用。
<span>php </span><span>class</span><span> baseParent { </span><span>static</span> <span>$counter</span> = 0<span>; </span><span>function</span><span> getName() { </span><span>return</span> 'baseParent'<span>; } </span><span>function</span><span> printName() { </span><span>echo</span> <span>static</span>::getName() . "\n"<span>; } } </span><span>class</span> base <span>extends</span><span> baseParent { </span><span>static</span> <span>$counter</span> = 0<span>; </span><span>function</span><span> addCounter() { </span><span>return</span> self::<span>$counter</span> +=1<span>; } </span><span>function</span><span> getName() { </span><span>return</span> 'base'<span>; } } </span><span>$one</span> = <span>new</span><span> base(); </span><span>$one</span>->printName();
输出: base

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)

Sujets chauds

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.

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 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

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

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.

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