Maison  >  Article  >  développement back-end  >  php qu'est-ce que l'interface

php qu'est-ce que l'interface

(*-*)浩
(*-*)浩original
2019-09-18 14:32:133513parcourir

Interface PHP

php qu'est-ce que l'interface

À l'aide de l'interface, vous pouvez spécifier quelles méthodes une classe doit implémenter, mais le Il n’est pas nécessaire de définir le contenu spécifique de ces méthodes.

Une interface est définie via le mot-clé interface, tout comme la définition d'une classe standard, mais toutes les méthodes qui y sont définies sont vides.

Toutes les méthodes définies dans l'interface doivent être publiques. C'est une caractéristique de l'interface. (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise)

Implémentations (impléments)

Pour implémenter une interface, utilisez les implémentements symbole d’opération. La classe doit implémenter toutes les méthodes définies dans l'interface, sinon une erreur fatale sera signalée. Une classe peut implémenter plusieurs interfaces. Utilisez des virgules pour séparer les noms de plusieurs interfaces.

Remarque :

Lors de l'implémentation de plusieurs interfaces, les méthodes des interfaces ne peuvent pas avoir le même nom.

Remarque :

Les interfaces peuvent également être héritées, en utilisant l'opérateur extends.

Remarque :

Pour implémenter une interface, une classe doit utiliser les méthodes définies dans l'interface exactement de la même manière. Sinon, une erreur fatale en résultera.

Instance d'interface

<?php

// 声明一个&#39;iTemplate&#39;接口
interface iTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}
// 实现接口
// 下面的写法是正确的
class Template implements iTemplate
{
    private $vars = array();
  
    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
  
    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace(&#39;{&#39; . $name . &#39;}&#39;, $value, $template);
        }
 
        return $template;
    }
}
// 下面的写法是错误的,会报错,因为没有实现 getHtml():
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    private $vars = array();
    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}
?>

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