PHP 学习笔记(4)

时间:2024-10-31 21:36:26

声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。


PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化


使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。


__toString() 方法用于一个类被当成字符串时应怎样回应。


当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。


后期静态绑定的用法


class A {
public static function foo() {
static::who();
}

public static function who() {
echo __CLASS__."\n";
}
}

class B extends A {
public static function test() {
A::foo();    这个是用类名做的域表示,后面的两个用的是parent self相对的表示。可见,用类名可以控制域,而用相对域是会全部后绑定的。
parent::foo();
self::foo();
}

public static function who() {
echo __CLASS__."\n";
}
}
class C extends B {
public static function who() {
echo __CLASS__."\n";
}
}

C::test();