Согласно заголовку, там PHP, эквивалентный из __name__ == "__main__"
?
Есть ли что-то, что работало бы на оба сценария, выполняемые через командную строку и посредством веб-запроса, или пользовательское будет функционировать быть необходимым?
Для незнакомых с Python, __name__ == "__main__"
позволяет Вам определять файл модуля и также иметь некоторые вещи, которые позволяют Вам выполнять его, если это - точка входа. Эквивалентная структура в PHP напомнила бы это:
// SomeClass.php
doStuff();
}
?>
// OtherClass.php
// command line:
php SomeClass.php // outputs "wahey!"
php OtherClass.php // outputs nothing
Примечание: ответ zerkm является лучшим, но является не совсем правильным - он должен читать:
if (!debug_backtrace()) {
// do useful stuff
}
Это значительно быстрее, чем! количество (debug_backtrace ()), который само является о дважды с такой скоростью, как мое решение, включающее realpath ().
if (!count(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)))
{
// some usefull stuff
}
подробнее см. https://www.php.net/manual/en/function.debug-backtrace.php . on debug_backtrace function
Вероятно, вам нужна одна из «Магических констант». В зависимости от того, что вы пытаетесь сделать, __ FILE __
, __ FUNCTION __
или __ CLASS __
может предоставить вам необходимую информацию.
Они говорят сами за себя:
__ FILE __
дает вам имя текущего файла __ FUNCTION __
дает вам имя текущей функции __ CLASS __
дает вам имя текущий класс. См. руководство для получения дополнительных сведений