PHP实现类似python__mian__=__name__来单独执行类文件

无聊翻了翻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常量来解决,具体方案自己试试就可以了。






转载于:https://my.oschina.net/fuckphp/blog/112250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值