Wie der Titel, gibt es PHP entspricht __name__ == "__main__"
?PHP-Äquivalent von Pythons __name__ == "__main__"?
Gibt es etwas, das für beide Skripts funktionieren würde, die über die Befehlszeile und über eine Webanforderung ausgeführt werden, oder wäre eine benutzerdefinierte Funktion erforderlich?
Für diejenigen, die mit Python nicht vertraut sind, können Sie mit __name__ == "__main__"
eine Moduldatei definieren und auch einige Dinge, mit denen Sie es ausführen können, wenn es der Einstiegspunkt ist. Die äquivalente Struktur in PHP ähneln würde dies:
// 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
Hinweis: zerkms' Antwort ist die beste, aber es ist nicht ganz richtig - es sollte lauten:
if (!debug_backtrace()) {
// do useful stuff
}
Dies ist deutlich schneller als! count (debug_backtrace()), das ist etwa doppelt so schnell wie meine Lösung mit Realpath().
Was ist mit meiner Antwort und Anzahl (debug_backtrace())? – zerkms