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

Согласно заголовку, там PHP, эквивалентный из __name__ == "__main__"?

Есть ли что-то, что работало бы на оба сценария, выполняемые через командную строку и посредством веб-запроса, или пользовательское будет функционировать быть необходимым?

Для незнакомых с Python, __name__ == "__main__" позволяет Вам определять файл модуля и также иметь некоторые вещи, которые позволяют Вам выполнять его, если это - точка входа. Эквивалентная структура в PHP напомнила бы это:

// SomeClass.php
<?php
class SomeClass
{
    function doStuff() {
        echo "wahey!\n";
    }
}

// python, I know.
if (__name__ == "__main__") {
    $sc = new SomeClass;
    $sc->doStuff();
}
?>

// OtherClass.php
<?php
require_once("SomeClass.php");
class OtherClass
{
    public $yep;
}
?>

// 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
поделиться