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