python的语法类似php_PHP实现类似python__mian__=__name__来单独执行类文件
無聊翻了翻PHP手冊,發(fā)現(xiàn)了幾個(gè)函數(shù),可以用于實(shí)現(xiàn)python的類似語法。
python中可以在類文件中加入以下語句用于單獨(dú)執(zhí)行一個(gè)類,這樣對測試一個(gè)類十分方便
if __name__ == '__main__':
print "執(zhí)行當(dāng)前類"
PHP中也可以通過一些方法來實(shí)現(xiàn)這個(gè)功能,其中需要利用兩個(gè)函數(shù)
getmyinode() 和fileinode()
這兩個(gè)函數(shù)分別是獲取當(dāng)前執(zhí)行腳本的inode索引,和獲取指定文件的inode索引,所以通過一下腳本可以實(shí)現(xiàn)。
if(getmyinode() == fileinode(basename(__FILE__)))
{
echo "執(zhí)行當(dāng)前類";
} 這樣如果是include進(jìn)去的則不會(huì)執(zhí)行,但是如果是直接運(yùn)行當(dāng)前類則會(huì)執(zhí)行 if內(nèi)的語句。
當(dāng)然對于PHP做為WEB應(yīng)用這樣做其實(shí)也有一些缺陷,比如現(xiàn)在很多框架是不允許單獨(dú)執(zhí)行某個(gè)類文件的,文件頭中加入了類似如下代碼的限制語句來限制訪問。
!defined('LESS_ROOT') && exit('access deined!'); 而且在web應(yīng)用中訪問這寫類確實(shí)不應(yīng)該返回調(diào)試信息,以免泄露一些敏感信息,或者一些未優(yōu)化的測試代碼被無聊人事利用
但是以上問題也可以通過定義DEBUG常量來解決,具體方案自己試試就可以了。
總結(jié)
以上是生活随笔為你收集整理的python的语法类似php_PHP实现类似python__mian__=__name__来单独执行类文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蜻蜓车标是什么车?
- 下一篇: python语言面试基础_【python