Maison > Article > développement back-end > Dans cinq minutes, je vais vous montrer la déclaration d'interface et l'application en PHP (exemples détaillés)
Dans l'article précédent, je vous ai présenté "Comment créer, obtenir et supprimer une session en PHP ?" ", qui présente en détail comment configurer, obtenir et supprimer une session en PHP. Dans cet article, nous examinerons les connaissances pertinentes de l'interface en PHP. J'espère que cela sera utile à tout le monde !
Dans notre étude précédente, nous avons découvert l'héritage en PHP, mais PHP ne prend en charge que l'héritage unique, ce qui signifie que chaque classe ne peut hériter que d'une seule classe parent. Les caractéristiques de l'héritage simplifient la création d'objets et de classes et augmentent la réutilisabilité du code. Afin de résoudre le problème selon lequel PHP ne prend en charge que l'héritage unique, PHP a introduit des interfaces. L'interface peut être comprise comme une classe abstraite spéciale et peut être considérée comme une classe spéciale. Examinons ensuite les connaissances pertinentes de l'interface PHP.
Déclaration d'interface
Étant donné que l'interface est une classe spéciale, elle a sa méthode de déclaration, appelée technologie d'interface. Nous savons grâce à des études précédentes que les déclarations de classe normales sont déclarées à l'aide du mot-clé "class". Puisque l'interface est spéciale, la méthode de déclaration normale ne sera pas utilisée. Elle doit être déclarée via la clé "interface
". mots pour implémenter la déclaration de l’interface. interface
”关键字来实现接口的声明。
声明接口interface
关键字的语法格式如下:
interface 接口名称{ // 常量成员 // 抽象方法 }
其中需要注意的是:
接口中所有的方法都是抽象方法,并且在方法前不需要使用abstract
关键字进行修饰。因为默认权限是public
公有的,所以在接口中不需要使用public访问权限来进行修饰。
接口中只能使用const
关键字生命为常量类型的成员属性,在接口中不能声明变量。
接口不能实例化为对象,接口可以直接使用接口名称在接口外面获取常量成员的值。
接下来通过示例来看一下,示例如下:
<?php interface Demo{ const STUDY = '好好学习'; const STUDY1 = '天天向上'; function fun1(); function fun2(); } echo Demo::STUDY.'<br>'; echo Demo::STUDY1; ?>
输出结果:
由此我们便通过interface 关键字完成了接口的声明。
接口的应用
接口是不能进行实例化操作的,所以想要使用接口中的成员的话,就需要借助子类。我们通过implements
关键字可以实现接口的继承,要是有多个接口继承的话,每个接口之间要使用,
隔开。
在通过implements
关键字继承接口的同时,还可以使用extends
Le format de syntaxe de l'interface de déclaration des mots-clés interface
est le suivant :
class 类名 extends 父类名 implements 接口一, 接口二, ..., 接口 n { // 实现所有接口中的抽象方法 }Ce qu'il faut noter est :
abstract
avant la méthode. Étant donné que l'autorisation par défaut est public
public, il n'est pas nécessaire de la modifier avec l'autorisation d'accès public dans l'interface.
const
peut être utilisé dans l'interface comme attributs membres de types constants, et les variables ne peuvent pas être déclarées dans l'interface. Les interfaces ne peuvent pas être instanciées en tant qu'objets. Les interfaces peuvent utiliser directement le nom de l'interface pour obtenir la valeur des membres constants en dehors de l'interface.
Regardons un exemple. L'exemple est le suivant :
<?php interface Demo{ const STUDY = '好好学习'; const STUDY1 = '天天向上'; function fun1(); function fun2(); } class Website implements Demo{ public function fun1(){ echo self::STUDY.'<br>'; } public function fun2(){ echo self::STUDY1; } } $obj = new Website(); $obj -> fun1(); $obj -> fun2(); ?>Résultat de sortie : À partir de là, nous complétons la déclaration de l'interface via le mot-clé interface. 🎜🎜🎜L'interface ne peut pas être instanciée, donc si vous souhaitez utiliser les membres dans l'interface, vous devez utiliser des sous-classes. Nous pouvons implémenter l'héritage d'interface via le mot-clé
implements
S'il y a plusieurs interfaces à hériter, chaque interface doit être séparée par ,
. 🎜🎜🎜Lorsque vous héritez d'une interface via le mot-clé implements
, vous pouvez également utiliser le mot-clé extends
pour hériter d'une classe. On peut comprendre que vous pouvez implémenter plusieurs interfaces tout en héritant d'une classe. Il convient de noter que vous devez d'abord utiliser extends pour hériter de la classe, puis utiliser Implements pour implémenter plusieurs interfaces. Son format de syntaxe est le suivant : 🎜interface One{ function fun1(); function fun2(); } interface Two extends One{ function fun3(); function fun4(); }🎜 Jetons un coup d'œil à l'application de l'interface à travers un exemple. L'exemple est le suivant : 🎜🎜
interface Demo{ function fun1(); function fun2(); } abstract class Website implements Demo{ public function fun2(){ ... ... ; } abstract function fun3(); }🎜Résultat de sortie : 🎜🎜🎜🎜🎜À quoi vous devez faire attention après. running est : puisque l'interface est héritée via les méthodes d'une sous-classe dans l'interface, alors toutes les méthodes de l'interface doivent être implémentées dans la sous-classe, sinon PHP émettra un message d'erreur. 🎜🎜En plus des applications des exemples ci-dessus, nous pouvons également utiliser le mot-clé extends pour permettre à une interface d'hériter d'une autre interface afin d'implémenter des extensions entre les interfaces. Dans l'exemple suivant, définissez d'abord une interface One, puis définissez une interface Two pour hériter de One : 🎜🎜L'exemple est le suivant : 🎜rrreee🎜De plus, si vous devez utiliser une classe abstraite pour implémenter certaines méthodes dans l'interface, vous devez également utiliser le caractère clé d'outils. 🎜🎜Les exemples sont les suivants : 🎜rrreee🎜Après avoir donné tant d'exemples, quel est le rôle spécifique de l'interface ? Nous pouvons considérer l'interface comme un modèle ou une spécification de classe. Lorsqu'elle est développée par plusieurs personnes, tout le monde peut l'implémenter selon. leurs besoins. Certaines interfaces suivent les réglementations de cette classe. C'est à ce moment-là que l'interface PHP entre en jeu. 🎜🎜Si vous êtes intéressé, vous pouvez cliquer sur "🎜Tutoriel vidéo PHP🎜" pour en savoir plus sur les connaissances PHP. 🎜
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!