php-面向对象

2019-03-27  本文已影响0人  quanCN

OOP概述

类操作

简单类

class Person{
    private $name;
    public function __construct($name){
        $this->name=$name;
        echo "new Person\n";
    }
    public function __destruct(){
        echo "gcc Person\n";
    }
    public function show(){
        echo $this->name;
    }
    public function getName(){
        return $this->name;
    }
    public function setName($name){
        $this->name = $name;
    }
}

继承

接口

使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
接口中定义的所有方法都必须是公有,这是接口的特性。

interface IA{
    function show();
}
class A implements IA {
    function show(){
        // TODO: Implement show() method.
    }
}

Trait

Trait是PHP一种代码复用机制,在Trait中,一个类可以组合多个Trait,而Trait可以继承其他Trait。Trait是代码重用最佳构建模块。
Trait和接口最大的不同就是:Trait包含了实现,而接口则不需要。

trait TA{
    public function show($name){
        echo "name is $name\n";
    }
}

使用Trait,这需要使用use关键字

class A {
    use TA;
    function speak(){
        $this->show("Tom");
    }
}

注:如果方法名相同,Trait方法会覆盖继承的方法,但当前方法会覆盖Trait的方法

高级功能

命名空间

命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。
PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径

虽然任意合法的PHP代码都可以包含在命名空间中,但只有以下类型的代码受命名空间的影响,它们是:类(包括抽象类和traits)、接口、函数和常量。

上一篇 下一篇

猜你喜欢

热点阅读