Ami*_*uda 6 php magic-constants
什么是PHP的魔术常量的使用的最佳实践,比如__LINE__,__FILE__,__FUNCTION__,__CLASS__和__METHOD__?
例如,我使用__LINE__ 和__CLASS__找到SQL错误,如下所示:
$result = mysql_query($query)
or die("Error SQL line ".__LINE__ ." class ".__CLASS__." : ".mysql_error());
Run Code Online (Sandbox Code Playgroud)
这是可接受的做法吗?
您展示的做法有两个缺点:
您没有显示发生错误的文件 - 您必须有一个非常严格的文件结构,将类映射到文件 1:1 才能有用
__CLASS__如果错误发生在继承的类中,将显示错误的结果。用于get_class($this)获取实际的当前类。
除此之外,使用这些常量是完全可以接受的。注意
__FUNCTION__并__CLASS__在 PHP 4.3 中添加
__METHOD__自 PHP 5.0.0 起可用
__DIR____NAMESPACE__从 PHP 5.3 开始可用。