Dieser Code ist von osTicket, https://github.com/osTicket/osTicket/blob/1.9.x/main.inc.php,Warum kann ich eine PHP-Funktion in einer Klasse statisch aufrufen, ohne dass die Methode als statisches Schlüsselwort deklariert wurde?
/**** static functions ****/
function start() {
// Prep basic translation support
Internationalization::bootstrap();
if(!($ost = new osTicket()))
return null;
//Set default time zone... user/staff settting will override it (on login).
$_SESSION['TZ_OFFSET'] = $ost->getConfig()->getTZoffset();
$_SESSION['TZ_DST'] = $ost->getConfig()->observeDaylightSaving();
// Bootstrap installed plugins
$ost->plugins->bootstrap();
// Mirror content updates to the search backend
$ost->searcher = new SearchInterface();
return $ost;
}
In einem anderen file, geschieht dies:
osTicket::start()
Es funktioniert. Warum wird das statische Schlüsselwort nicht benötigt?
EDIT: Funktioniert das in anderen Sprachen?
Sie können jede Objektmethode/Funktion statisch aufrufen, aber wenn diese Funktion '$ this' verwendet, erhalten Sie Warnungen über die Verwendung von' $ this' in einem statischen/Nicht-Objekt-Kontext. –
Ist das nur in PHP? – johnny
Nun, es ist in Ordnung in PHP. keine Ahnung von "allen" anderen Sprachen. –