34 PHP 类
1. 定义
<code>class 类名 { <span>...</span> }</code>
2. 加载类
<code><span>require</span><span>'./People.class.php'</span>;</code>
3. 自动加载类
为了使用类,每次都要包含类的定义挺麻烦的。PHP5 开始,定义了一个 __autoload() 函数来实现类的自动加载。PHP在使用未定义的类时,会自动调用此函数。
<code><span><span>function</span><span>__autoload</span><span>(<span>$classname</span>)</span> {</span><span>require_once</span><span>'./'</span> . <span>$classname</span> . <span>'.php'</span>; }</code>
4. 类的方法
<code>[ <span>static</span> | <span>final</span> ] 访问控制修饰符 <span><span>function</span> 方法名<span>(参数)</span> {</span> ... } 关键字 <span>static</span><span>final</span> 为可选项, 访问控制修饰符为<span>public</span>,<span>protected</span>,<span>private</span>中的一个。如果不指定,默认为<span>public</span>。 <span>static</span>关键字修饰的类方法为静态方法。在静态方法中,只能调用静态变量,不能调用普遍变量。 在普通方法中,可以调用静态变量。 在类的内部调用静态方法:<span>self</span>::静态方法。 在类的内部调用父类的静态方法:<span>parent</span>::静态方法。 如果在外部调用静态方法,则不用实例化,直接调用。 类名::静态方法</code>
5. 类的属性
<code>访问控制修饰符 [<span>static</span>] 属性名称; 访问控制修饰符为<span>public</span>,<span>protected</span>,<span>private</span>中的一个。默认为<span>public</span>。 如果要在类的方法中,访问属性:<span>$this</span>->属性名; 在类的内部访问静态属性:<span>self</span>::静态属性。 访问父类的静态属性:<span>parent</span>::静态属性。 注意,这里的静态属性名是要加 $ 美元符号的。 <span>self</span>::<span>$dollars</span> = <span>$dollars</span>; 在类外访问静态属性: 类名::属性名; 前提为可以访问,也是有 $ 符号。</code>
6. 类常量
<code>const <span>MALE</span> = <span>'男'</span>; <span>//</span>常量名前面不加 <span>$ </span>。 类内访问: <span>self:</span><span>:</span>常量名 <span>parent:</span><span>:</span>常量名 不加 <span>$ </span> , <span>self:</span><span>:MALE</span>类外访问: 类名<span>:</span><span>:</span>常量名 ; 不加 <span>$ </span>。</code>
7. 构造函数和析构函数
<code><span>function</span> __construct() { <span>...</span> // 自动调用 } <span>function</span> __destruct() { <span>...</span> // 无参 }</code>
8. 类的继承
<code>class 子类名 extends 父类名 { <span>...</span> } 如果子类中定义了构造方法,则子类在实例化时不会自动调用父类的构造方法。对于析构方法也是如此, 如果子类中定义了析构方法,则子类的实例在被销毁时不会自 动调用父类的析构方法。 显式调用父类的构造方法: <span>function</span> __construct() { <span>...</span> parent::__construct() { <span>...</span> } <span>...</span> } 显式调用父类的析构方法: <span>function</span> __destruct() { <span>...</span> parent::__destruct() { <span>...</span> } <span>...</span> }</code>
9. 多态
多态分为静态多态 和 动态多态
<code>静态多态:一个同名函数或者一个类中的同名方法,根据参数列表(类型以及个数)的不同来区别语义, 即所谓的函数重载。但PHP不支持函数重载。 动态多态:类的成员方法,能根据调用它的对象的类型的不同,自动做出适应性调整, 而且调整是发生在程序运行时的。PHP 中通过抽象类和接口 技术来实现动态多态性。</code>
子类覆盖父类:
只要在子类中定义与父类同名的方法,即可覆盖。诺要访问父类,用parent::父类同名方法。
如果父类不想自己的方法被子类覆盖,用 final 来修饰父类的方法。
10. 抽象类和抽象方法
抽象类是一种不能被实例化的类,只能作为父类被其他类继承。抽象类必须包含一个抽象方法。
所谓抽象方法,就是没有具体实现的方法,其对应的函数体为空。抽象方法的细节,只能在子类中实现,而且子类必须实现所继承抽象类中的所有的抽象方法。
<code>abstract class 抽象类名 { <span>...</span> abstract [public | protected ] <span>function</span> 抽象方法名(参数) { <span>...</span> } } 其中,抽象方法的访问控制符只能为public,protected之一。如果抽象方法声明为public,则 子类中实现的方法也应声明为public;如果抽象方法声明为protected, 则子类中实现的方法既可以为protected,也可以声明为public。</code>
11. 接口
无论是普遍类还是抽象类,只能实现单继承,即一个子类只能继承一个父类。事实上,PHP 也只支持单继承。如果要实现多继承,则用接口(interface)技术来实现。
接口和类的区别:
<code>可以认为接口也是一种类,只是这种类中可以定义常量,但不能定义属性变量;可以定义方法, 但方法必须为空。也就是说,接口中只能定义常量和尚 未实现的方法,且方法必须为<span>public</span>(可以省略, 因为类的方法默认就是<span>public</span>)。 <span><span>interface</span> 接口名 {</span><span>const</span> 常量名 = 值; <span><span>function</span> 方法名<span>(参数)</span> {</span> ... } } 实现: <span><span>class</span> 子类名 <span>implements</span> 接口名1,接口名2 .. {</span> ... }</code>
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了34 PHP 类,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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)

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.

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

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

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

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
