比如:int a = 3;這里a變量名,那么同樣你在寫類的時候類名和這個變量名意義一樣,只不過類的作用很多。
獲取類名的幾種方式
1.__CLASS__:獲取當前的類名
2.get_class():返回對象的類名
3.get_called_class():后期靜態(tài)綁定(”Late Static Binding”)類的名稱,即靜態(tài)方法調(diào)用者的類名
<?php class foo { static public function test() { echo "foo.__CLASS__:".__CLASS__."\n"; echo "foo.get_class:".get_class()."\n"; echo "foo.get_called_class:".get_called_class()."\n"; } } class bar extends foo { } foo::test(); echo "\n"; bar::test(); ?>
結(jié)果:
//結(jié)果 foo.__CLASS__:foo foo.get_class:foo foo.get_called_class:foo foo.__CLASS__:foo foo.get_class:foo foo.get_called_class:bar
單例模式:確保一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例。
<?php //通過get_called_class實現(xiàn)單例模式 class Singleton{ private static $instance; public static function getInstance() { //靜態(tài)共有方法實例化對象 $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]; } } ?>