As per the title, is there PHP equivalent of __name__ == "__main__"
?
Is there something that would work for both scripts executed through the command line and through a web request, or would a custom function be needed?
For those unfamiliar with Python, __name__ == "__main__"
allows you to define a module file, and also have some things that allow you to run it if it is the entry point. The equivalent structure in PHP would resemble this:
// SomeClass.php
<?php
class SomeClass
{
function doStuff() {
echo "wahey!
";
}
}
// 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
Note:
zerkms' answer is the best, but is not quite right - it should read:
if (!debug_backtrace()) {
// do useful stuff
}
This is significantly faster than !count(debug_backtrace()), which itself is about twice as fast as my solution involving realpath().
question from:
https://stackoverflow.com/questions/2413991/php-equivalent-of-pythons-name-main 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…