【发布时间】:2011-01-25 17:16:02
【问题描述】:
根据标题,是否有 PHP 等效于 __name__ == "__main__"?
有什么东西可以同时适用于通过命令行和网络请求执行的脚本,还是需要自定义函数?
对于那些不熟悉 Python 的人,__name__ == "__main__" 允许你定义一个模块文件,如果它是入口点,还有一些东西可以让你运行它。 PHP 中的等效结构如下所示:
// SomeClass.php
<?php
class SomeClass
{
function doStuff() {
echo "wahey!\n";
}
}
// python, I know.
if (__name__ == "__main__") {
$sc = new SomeClass;
$sc->doStuff();
}
?>
// OtherClass.php
<?php
require_once("SomeClass.php");
class OtherClass
{
public $yep;
}
?>
// command line:
php SomeClass.php // outputs "wahey!"
php OtherClass.php // outputs nothing
注意: zerkms' answer 是最好的,但并不完全正确 - 它应该是:
if (!debug_backtrace()) {
// do useful stuff
}
这比 !count(debug_backtrace()) 快得多,后者本身的速度大约是我的涉及 realpath() 的解决方案的两倍。
【问题讨论】:
-
我的答案和count(debug_backtrace())怎么样?
标签: python php main language-comparisons