[转]PHP __CLASS__、get_class()与get_called_class()的区别
2017-10-12 19:44
375 查看
__CLASS__获取当前的类名,
get_class()与上面一样,都是获取当前的类名
get_called_class()获取当前主调类的类名
当涉及到继承时,在方法中使用类名。
class A { function say() { echo 'A is ' . __CLASS__ . '<br/>'; echo 'A is ' . get_class() . '<br/>'; echo 'A is ' . get_called_class() . '<br/>'; } } class B extends A { function say() { parent::say(); echo 'B is ' . __CLASS__ . '<br/>'; echo 'B is ' . get_class() . '<br/>'; echo 'B is ' . get_called_class() . '<br/>'; } } $b = new B(); $b->say();
输出:
A is A A is A A is B B is B B is B B is B
MVC框架中,涉及到单例时很好用,一般在基类中
public static function getInstance() { $class_name = get_called_class(); if (isset(self::$instance[$class_name])) { return self::$instance[$class_name]; } self::$instance[$class_name] = new $class_name; return self::$instance[$class_name]; }
其他类只要继承这个类,然后通过getInstance()就实现了单例模式
相关文章推荐
- php __CLASS__、get_class()与get_called_class()的区别
- php __CLASS__、get_class()与get_called_class()的区别
- php get_called_class()函数与get_class函数的区别
- php get_called_class()函数与get_class函数的区别
- php __CLASS__、get_class()与get_called_class()的区别
- php get_called_class()函数与get_class函数的区别
- PHP的继承方法如何获取子类名?get_class() 和 get_called_class
- PHP的继承方法如何获取子类名?get_class() 和 get_called_class()
- PHP中的get_called_class
- PHP中get_class($this)与__CLASS__的区别
- php中的get_called_class()方法
- PHP get_called_class
- 【php趣味】__CLASS__、get_class、get_called_class三兄弟
- 让PHP<5.3版本支持get_called_class()方法
- PHP的继承方法如何获取子类名?get_class() 和 get_called_class()
- Java中的getName(), .class 和forName()的区别
- className.class.getResourceAsStream()与ClassLoader.getSystemResourceAsStream() 的区别
- 初学php之 href和Action,get和post的区别
- getClass()和getSimpleName()的区别和作用(转载)
- Java中Class对象详解、类名.class、class.forName()、 getClass()区别