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