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
You probably want one of the "Magic Constants". Depending on what you are trying to do, __FILE__
, __FUNCTION__
or __CLASS__
may give you the information you are after.
They are pretty self explanatory:
__FILE__
gives you the current file name__FUNCTION__
gives you the name of the current function__CLASS__
gives you the name of the current class.Check the manual for more details
if ($argv && $argv[0] && realpath($argv[0]) === __FILE__) {
// ...
}
works like a charm.
when you run php in command line, the name of php file will pass to program as $argv[0]
and __FILE__
magic variable mean current file. So we check the running program is current file logically equals Python's __name__ == "__main__"
.
if (!count(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)))
{
// some usefull stuff
}
look at https://www.php.net/manual/en/function.debug-backtrace.php for more details on debug_backtrace function