您的位置:

PHP implements 关键字解析

在 PHP 语言中,implements 是一个非常常用的关键字,用于实现接口。这个关键字可以让我们定义一个类,满足某个接口的所有规定,从而让这个类支持对应的接口。

一、使用 implements 实现接口

在 PHP 中,我们可以使用 implements 关键字来实现一个接口。接口定义了方法,类实现接口时必须实现所有的方法。 示例代码如下:
interface Animal {
    public function eat();
    public function sleep();
}

class Cat implements Animal {
    public function eat() {
        echo "Cat is eating.\n";
    }

    public function sleep() {
        echo "Cat is sleeping.\n";
    }
}
上述代码定义了一个 Animal 接口,它包含 eat() 和 sleep() 两个方法。接下来我们定义了一个 Cat 类,使用 implements 关键字实现了 Animal 接口,并实现了 eat() 和 sleep() 两个方法。

二、多个接口同时实现

在一个类中使用 implements 关键字可以实现一个接口,但是可以同时实现多个接口。示例代码如下:
interface FirstInterface {
    public function firstMethod();
}

interface SecondInterface {
    public function secondMethod();
}

class MyClass implements FirstInterface, SecondInterface {
    public function firstMethod() {
        echo 'I am implementing FirstInterface';
    }

    public function secondMethod() {
        echo 'I am implementing SecondInterface';
    }
}
上述代码定义了两个接口 FirstInterface 和 SecondInterface,并定义了一个类 MyClass,使用 implements 关键字同时实现了这两个接口。

三、使用 implements 和继承同事使用

在 PHP 中,一个类可以同时继承另一个类,而且还可以同时实现一个或多个接口。示例代码如下:
interface Animal {
    public function eat();
    public function sleep();
}

class Mammals {
    public function run() {
        echo "I can run.\n";
    }
}

class Cat extends Mammals implements Animal {
    public function eat() {
        echo "Cat is eating.\n";
    }

    public function sleep() {
        echo "Cat is sleeping.\n";
    }
}
上述代码定义了 Animal 接口、Mammals 类和 Cat 类。Cat 类同时继承了 Mammals 类和实现了 Animal 接口。

四、接口继承多个接口

在 PHP 中,一个接口也可以继承自另一个或多个接口,这样子接口就包含了父接口所有的规定。示例代码如下:
interface Animal {
    public function eat();
    public function sleep();
}

interface Mammals extends Animal {
    public function run();
}

class Cat implements Mammals {
    public function eat() {
        echo "Cat is eating.\n";
    }

    public function sleep() {
        echo "Cat is sleeping.\n";
    }

    public function run() {
        echo "Cat is running.\n";
    }
}
上述代码定义了 Animal 接口和 Mammals 接口,Mammals 继承自 Animal,而 Cat 类实现了 Mammals 接口,从而包含了所有 Animal 和 Mammals 规定的所有方法。

五、总结

在 PHP 中,implements 是一个很有用的关键字,用于实现接口。使用它,我们可以让一个类满足某个接口的规定,从而让这个类支持对应的接口。同时一个接口也可以继承自另一个或多个接口,这样子接口就包含了所有父接口规定的方法。