网站建设:php 后期静态绑定

2024-04-20   浏览量:

PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类,这个是php官方的解释,即在类的继承过程中,使用的类不再是当前类,而是调用类。后期静态绑定使用关键字static来实现,通过这种机制,“static::”不在解析为定义当前方法所在的类,而是在实际运行时计算得到的,即运行时最初调用的类。虽然将其称之为“后期静态绑定”,但它不仅限制于静态方法的调用

请看下面的实例


  1. <?php
  2. class A{
  3. public static function call(){
  4. echo "class A<br/>";
  5. }
  6. public static function test(){
  7. self::call();
  8. static::call();
  9. }
  10. }
  11. class B extends A{
  12. public static function call(){
  13. echo "class B";
  14. }
  15. }
  16. B::test();

输出结果:
网站建设:php 后期静态绑定


  1. class A
  2. class B

通过上面的代码可以看到,在调test方法的时候,“self::”是直接调用本类的方法,static 是根据调用test方法的类来决定的“static::”的值,因此static的值只有在调用时才能确定下来,而self则是在定义是就确定下来。需要注意的是static并不限于静态方法

上一篇:Python使用Srapy框架爬虫模拟登陆并抓取知乎内容              下一篇:最后一页