PHP面向对象精要总结

本文实例汇总了PHP面向对象程序设计的精要。分享给大家供大家参考。具体分析如下:

1 使用extends实现继承以及重载、魔术方法的含义

class B extends A

声明的时候B里可以没有A里的方法

调用的时候:

$b=new B();

$b->A里的方法();

$b->A里的属性=1;

$b->B里的方法();

$b->B里的方法();

如果$a=new A();

可以

$a->A里的方法();

$a->A里的属性=1;

不可以

$a->B里的方法();

$a->B里的方法();

 

重载:B继承A ,B里实现和A同名的方法属性。

PHP中的"重载"与其它绝大多数面向对象语言不同。传统的"重载"是用于提供多个同名的 类方法,但各方法的参数类型和个数不同。

 

魔术方法:PHP把所有以__(两个下划线)开头的类方法当成魔术方法。所以你定义自己的类方法时,不要以 __为前缀。

 

2 继承用private和protected访问修饰符可见性

属性方法private不可以被继承

属性方法protected类外部不可见,可以被继承

属性方法public 所定义的类成员可以在任何地方被访问

3 php中双冒号::的应用

php类代码中常看到"::"的操作符,这个是作用域限定操作符,是用一个双冒号"::"表示,它用来置顶类中不同作用域的级别。左边是作用域右边是访问作用域的成员。

在php中定义的作用域有self和parent两种(在php6中提供了static作用域)。

 

范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量,还可以用于子类覆盖父类中的成员和方法。

class MyClass {

    const CONST_VALUE = 'A constant value';

}

echo MyClass::CONST_VALUE;

class OtherClass extends MyClass

{

    public static $my_static = 'static var';

    public static function doubleColon() {

        echo parent::CONST_VALUE . "\n";

        echo self::$my_static . "\n";

    }

}

OtherClass::doubleColon();

//子类覆盖父类

class MyClass

{

    protected function myFunc() {

        echo "MyClass::myFunc()\n";

    }

}

class OtherClass extends MyClass

{

    // 覆盖父类中的方法

    public function myFunc()

    {

        // 但仍然可以调用已被覆盖的方法

        parent::myFunc();

        echo "OtherClass::myFunc()\n";

    }

}

$class = new OtherClass();

$class->myFunc();

以上是 PHP面向对象精要总结 的全部内容, 来源链接: utcz.com/z/330516.html

回到顶部