How to get the child name of a class from the parent class

I am trying to accomplish this without requiring a function on the child class ... is this possible? I don’t have that feeling, but I really want to be sure ...

<?php class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // Here comes Late Static Bindings } } class B extends A { public static function who() { echo __CLASS__; } } B::test(); //returns B ?> 
+6
source share
1 answer

Use get_called_class() instead of __CLASS__ . You can also replace static with self , since the function will allow the class through late binding for you:

 class A { public static function who() { echo get_called_class(); } public static function test() { self::who(); } } class B extends A {} B::test(); 
+13
source

Source: https://habr.com/ru/post/910050/


All Articles