PHP 面向对象基础:封装性 public 1 个改进

什么是封装?

尽量隐藏对象的内部细节,达到访问控制。对外形成一个屏障,只保留有限的对外接口与外部发生联系。控制在程序中属性、方法的读取和修改的方位级别。 PHP 类的封装包括 访问控制(可见性约束)魔术方法静态属性静态方法重载

封装的原则

对象对外的部分不能够随意调用、更改对象的内部数据(成员属性和成员方法),从而有效避免了外部错误对对象内部数据的”交叉感染”,使错误能够局部化,大大提升排错的效率。

属性的访问控制

对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。

class MyTest
{
    // 公共属性
    public $a = 'public';

    // 公共方法
    public function printPublic()
    {
        echo "Called public funtion" . "<br />";

    }

    // 类自身调用公共属性与方法
    public function printEverything()
    {
        echo $this->a . " | ";
        $this->printPublic();
    }
}

对象可以调用类的公共属性和方法

$test = new MyTest();
echo $test->a . "<br />";    // public
$test->printPublic();    // Called public funtion
$test->printEverything();    // public | Called public funtion

子类可以调用父类的公共属性和方法

class Test extends MyTest
{
    public function printPublic()
    {
        echo $this->a . "<br />";
        parent::printPublic();
    }
}

$obj = new Test();    // public
$obj->printPublic();    // Called public funtion
本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!