PHP5.3延迟静态绑定

890阅读 0评论2014-06-22 ewayfly
分类:PHP

在5.3中,给类加入了关键词static,用于实现延迟静态绑定(late static binding)。
没怎么用过这个新特性,其实也不算新啦,试试吧,现在静态类的继承很方便了。
例子:

  1. <?php
  2. class A {
  3.  protected static $def = '123456';
  4.  public static function test() {
  5.   echo get_class(new static);
  6.  }

  7.  public static function test2() {
  8.   echo static::$def;
  9.  } //
  10. }

  11. class B extends A {
  12.  protected static $def = '456789';
  13. }

  14. class C extends A {
  15.  protected static $def = 'abcdef';
  16. }

  17. echo B::test();
  18. echo '
    '
    ;
  19. echo C::test();
  20. echo '
    '
    ;
  21. echo B::test2();
  22. echo '
    '
    ;
  23. echo C::test2();
  24. echo '
    '
    ;
  25. echo A::test();
  26. echo '
    '
    ;
  27. echo A::test2();
  28. echo '
    '
    ;

  29. // 输出结果
  30. B
  31. C
  32. 456789
  33. abcdef
  34. A
  35. 123456
上一篇:php AES加密解密类实例代码
下一篇:PHP强制下载PDF文件的例子