解释 PHP 中的接口。

phpprogrammingserver side programming更新于 2025/11/17 7:48:00

在本文中,我们将了解如何使用 PHP 接口,它是 PHP 面向对象编程中最重要的结构模式之一。

接口使我们能够编写程序,指示类必须执行的公共方法,而不包括具体方法如何实现的复杂性和过程。这意味着接口可以定义方法名称和参数,但不能定义方法的内容。任何实现接口的类都必须实现接口定义的所有方法。

接口的特征与类类似,但是,只有 interface 关键字替换了声明中的 class 短语,并且没有任何方法具有定义其内容的特征。

示例

让我们创建一个接口并通过一个简单的示例实现它。

<?php
   Interface MyInterface {
      public function getName();
      public function getAge();
   }
   class MyClass implements MyFirstInterface{
      public function getName() {
            echo "My name A".'<br>';
      }
      public function getAge(){
            echo "My Age 12";
      }
   }
   $obj = new MyClass;
   $obj->getName();
   $obj->getAge();
?>

输出:

My name A
My Age 12

解释:

这里我们声明了一个接口 MyFirstInterface,其中包含两个方法 getName 和 getAge,但没有任何内容。然后,MyClass 类实现此接口并根据需要使用可用的方法。

让我们了解接口的一些重要特性:

  • 接口由没有内容的方法组成,这意味着接口方法是抽象方法。
  • 接口中的每个方法都必须具有公共可见性范围。
  • 接口与类不太一样,因为类可以从一个类继承,但类可以实现一个或多个接口。
  • 接口内不能存在变量。

注意:

我们可以利用接口实现多重继承,因为一个类可以实现多个接口,而它只能扩展一个类。

示例

让我们用一个简单的例子来测试一下。

<?php
   interface a{
      public function printData();
   }
   interface b{
      public function getData();
   }
   interface c extends a, b{
      public function addData();
   }
   class d implements c{
      public function printData(){
         echo "I am printing";
      }
      public function getData(){
         echo "I am reading data";
      }
      public function addData(){
         echo "I am adding"
      }
   }
   $myobj = new class d();
   $myobj->printData();
   $myobj->addData();
?>

输出:

I am printing
I am adding

解释:

这里我们声明了三个接口,即"接口 a"、"接口 b"和"接口 c"。在这种情况下,接口 c 还扩展了前两个接口。然后我们声明了一个仅实现接口 c 的类,但是由于接口 c 扩展了前两个接口,因此在"接口 a"、"接口 b"和"接口 c"中声明的所有方法都可以在类 d 中使用。这就是我们通过实现接口实现多重继承的方法。


相关文章