Heim >Backend-Entwicklung >PHP-Tutorial >Kann eine bestimmte Klasse in PHP global erweitert werden?

Kann eine bestimmte Klasse in PHP global erweitert werden?

WBOY
WBOYOriginal
2016-09-14 09:41:261188Durchsuche

Das Projekt, an dem ich arbeite, ist voller Aussagen wie global $app;. Gibt es eine Möglichkeit, global $app; direkt ohne $app zu verwenden?

Antwortinhalt:

Das Projekt, an dem ich arbeite, ist voller Aussagen wie global $app;. Gibt es eine Möglichkeit, global $app; direkt ohne $app zu verwenden?

Unabhängig von OOP sind Variablen außerhalb von Funktionen in PHP globale Variablen.
Wenn Sie globale Variablen innerhalb einer Funktion verwenden möchten, können Sie natürlich auch die Übergabe von Parametern in Betracht ziehen > PHP selbst stellt viele „super“ globale Variablen wie $_SERVER/$_COOKIE usw. bereit, die keine globale Deklaration erfordern.
Die Windows-Registrierung erscheint PHPer als
Hash-Tabelle (mehrdimensional). Array) im globalen Bereich, der Konfigurationsinformationen verschiedener Anwendungen und Module speichern kann. Warum schließt die PHP-Webanwendung ein solches globales Array auf Anwendungsebene aus? Wie Discuz! gibt es ein solches globales Array mit dem Namen $_G[].$win = array();

Natürlich fühlen sich einige Leute mit OOP nicht wohl und mögen einfach keine globalen Arrays, also ist das in Ordnung:

<code><?php
class App {
    private static $options = array(
        'db_host' => '127.0.0.1',
        'db_user' => 'yaber',
        'db_pass' => '123456',
        'db_name' => 'yabase',
        'db_port' => 3306
    );
    public static function config($key = '') {
        return ($key == '') ? self::$options : self::$options[$key];
    }
}
function bar() {
    echo App::config('db_name');
}
bar(); //输出 yabase</code>
Der größte Vorteil statischer Methoden einer Klasse besteht darin, dass die Klasse direkt ohne Instanziierung verwendet werden kann, sie jedoch nicht auf die nicht statischen Mitgliedsvariablen und Methoden der Klasse zugreifen kann.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn