php get_called_class()函数与get_class函数的区别

Posted 与f

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php get_called_class()函数与get_class函数的区别相关的知识,希望对你有一定的参考价值。

get_class (): 获取当前调用方法的类名; 
get_called_class():获取静态绑定后的类名;

有例为证:

 class Foo{
      public function test(){
         var_dump(get_class());
      }

      public function test2(){
        var_dump(get_called_class());
      }

      public static function test3(){
        var_dump(get_class());
      }

      public static function test4(){
        var_dump(get_called_class());
      }
   }

   class B extends Foo{

   }

   $B=new B();
   $B->test();
   $B->test2();
   Foo::test3();
   Foo::test4();
   B::test3();
   B::test4();

输出结果:

string ‘Foo‘ (length=3)
string ‘B‘ (length=1)
string ‘Foo‘ (length=3)
string ‘Foo‘ (length=3)
string ‘Foo‘ (length=3)
string ‘B‘ (length=1)

 

 

转:http://blog.csdn.net/tashanhongye/article/details/48159771

参:http://php.net/manual/zh/function.get-called-class.php

 

 

 

 

以上是关于php get_called_class()函数与get_class函数的区别的主要内容,如果未能解决你的问题,请参考以下文章

PHP的继承方法如何获取子类名?get_class() 和 get_called_class

PHP 类/对象函数

get_called_class--后期静态绑定("Late Static Binding")类的名称

如何从父静态函数调用静态子函数?

PHP 单例模式继承的实现方式

php 代码大全