PHP, эквивалентные из Python __, называют __ == “__ основной __”?

Согласно заголовку, там 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 ().

34
задан dreftymac 31 August 2019 в 16:52
поделиться

2 ответа

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

32
ответ дан 27 November 2019 в 17:07
поделиться

Вероятно, вам нужна одна из «Магических констант». В зависимости от того, что вы пытаетесь сделать, __ FILE __ , __ FUNCTION __ или __ CLASS __ может предоставить вам необходимую информацию.

Они говорят сами за себя:

  • __ FILE __ дает вам имя текущего файла
  • __ FUNCTION __ дает вам имя текущей функции
  • __ CLASS __ дает вам имя текущий класс.

См. руководство для получения дополнительных сведений

0
ответ дан 27 November 2019 в 17:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: