i know both gives same results but i am looking forward to hear about performance.
i am not sure but i think..
"MyClass::className()
" cause that class file to be loaded as well (its Yii function whom body is just simply get_called_class()
)
"MyClass::class
" i think this php's native class property don't load class php file and just return its name based on current namespace or use
.
Let me know if i am right? or highlight your knowledge please.
There are many places where we just want full qualitfied class name even it's not going to be used that time. but i also don't like putting hardcoded strings (due to hard refactoring)
Yes i just found i was right.
PHP's native class property is performance saving..(PHP 5.5+)
see here http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.class.class.name
so this don't cause class file to be loaded, so even if class doesn't exists it will return full className
Note: The class name resolution using ::class is a compile time transformation. That means at the time the class name string is created no autoloading has happened yet. As a consequence, class names are expanded even if the class does not exist. No error is issued in that case.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With