PHP equivalent of Python's __name__ == “__main__”?

前端 未结 3 1225
独厮守ぢ
独厮守ぢ 2021-01-31 02:59

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

相关标签:
3条回答
  • 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

    0 讨论(0)
  • 2021-01-31 03:15
    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__".

    0 讨论(0)
  • 2021-01-31 03:31
    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

    0 讨论(0)
提交回复
热议问题