无聊翻了翻PHP手册,发现了几个函数,可以用于实现python的类似语法。
python中可以在类文件中加入以下语句用于单独执行一个类,这样对测试一个类十分方便
if __name__ == '__main__':
print "执行当前类"
PHP中也可以通过一些方法来实现这个功能,其中需要利用两个函数
getmyinode() 和fileinode()
这两个函数分别是获取当前执行脚本的inode索引,和获取指定文件的inode索引,所以通过一下脚本可以实现。
if(getmyinode() == fileinode(basename(__FILE__)))
{
echo "执行当前类";
} 这样如果是include进去的则不会执行,但是如果是直接运行当前类则会执行 if内的语句。
当然对于PHP做为WEB应用这样做其实也有一些缺陷,比如现在很多框架是不允许单独执行某个类文件的,文件头中加入了类似如下代码的限制语句来限制访问。
!defined('LESS_ROOT') && exit('access deined!'); 而且在web应用中访问这写类确实不应该返回调试信息,以免泄露一些敏感信息,或者一些未优化的测试代码被无聊人事利用
但是以上问题也可以通过定义DEBUG常量来解决,具体方案自己试试就可以了。