PHP延迟静态绑定示例分享

在PHP5.3中,给类加入了关键词static,用于实现延迟静态绑定(late static binding),那么我们来看看一个示例来好好学习下。

PHP延迟静态绑定示例分享

没怎么用过这个新特性,其实也不算新啦,试试吧,现在静态类的继承很方便了

33

<?php

class A {

protected static $def = '123456';

public static function test() {

echo get_class(new static);

}

public static function test2() {

echo static::$def;

}

}

class B extends A {

protected static $def = '456789';

}

class C extends A {

protected static $def = 'abcdef';

}

echo B::test();

echo '<br>';

echo C::test();

echo '<br>';

echo B::test2();

echo '<br>';

echo C::test2();

echo '<br>';

echo A::test();

echo '<br>';

echo A::test2();

echo '<br>';

// 输出结果

B

C

456789

abcdef

A

123456