2016-10-24 3 views
-1

Gibt es ein globales Objekt in PHP, wo alle Methoden, Variablen, Objekte, Funktionen ... (alle PHP-Dinge) liegen? Ein solches Objekt in JavaScript wird als Fenster bezeichnet.Gibt es ein globales Objekt in PHP (wie das Fensterobjekt in JavaScript)?

Ich möchte verstehen, was genau die PHP-Programmierung ist. Zum Beispiel ist die JavaScript-Programmierung (wie ich es verstehe) eine Manipulation mit Blatt-Objekten der Stücklisten-Baumstruktur - "Sie nehmen ein Blatt-Objekt der Stückliste, dann machen Sie etwas mit diesem Blatt-Objekt und Sie speichern das Ergebnis in einem anderen Blattobjekt der Stückliste "

Ich möchte die Struktur der Daten verstehen, mit denen ich es zu tun habe. Zum Beispiel, wenn ich $ x = 10 schreibe; - Die Variable wird erstellt. Wo liegt es? Es muss mit einem Objekt verbunden sein.

+0

Nein, es ist nicht –

+0

Es muss kein Fensterobjekt in JavaScript sein. –

+1

Nein, tut es nicht. Es liegt innerhalb des Bereichs, in dem es sich befindet. Wenn Sie '$ x = 10' schreiben, können Sie über' $ x' auf diese Variable zugreifen. Es gibt kein alternatives implizites 'Fenster [$ x]'. Es muss nicht sein. – deceze

Antwort

0

Ich werde versuchen, Ihnen eine kleine Tour über Umfang in PHP zu geben.

Es ist genau das gleiche wie jede Programmiersprache. Sie können auf einen var nur in seinem Ausführungsumfang zugreifen.

Fall 1:

function bar() { 
    $x = 10; // $x can be used in bar function only 
} 

Fall 2:

class foo() { 
    private $x; 

    //$x can be used in every foo class methods by using $this->$x 

} 

Fall 3:

class Foo() { 
    public $x; 
    //$x $foo = new Foo(); $foo->x; 
    // **everywhere = everywhere you are including the file which defines Foo class 
    public static $y; 
    //$y can be used everywhere by using : Foo::y 
} 

Und zum Abschluss, Sie Globals definieren können. Von überall:

define("X", "something"); 

Hoffe, es gibt Ihnen eine bessere Vorstellung von dem, was PHP-Variablen.

PS: Fensterobjekt in Javascript ist kein Objekt "wo alle Methoden, Variablen, Objekte, Funktionen ..." definiert sind. Es ist nur ein Objekt, das einige Dinge der Browser-Registerkarte verwaltet.

+0

* "Wie in jeder Sprache ... nur im Ausführungsumfang ..." * * hust hust * [dynamisches Scoping] (https://en.wikipedia.org/wiki/Scope_ (computer_science) # Lexical_scope_vs._dynamic_scope) * hust hust * - 'privat' und' öffentlich' haben nicht wirklich viel mit Scoping zu tun, sondern mit * visibility *, was ein separates Konzept ist. - 'define()' definiert nicht "globals", es definiert ** constants **, was noch etwas anderes ist. – deceze

+0

Außerdem kann 'public $ x' nicht von' Foo :: x' aufgerufen werden. – deceze

+0

stimme mit dir zu, sorry, ich hatte nicht zu viel Zeit zu erklären, was ist vars .. zu Ihrer Information Konstanten wie diese definiert sind auch Globals: http://php.net/manual/en/language.constants.php Aber ja, es ist konstant. –

Verwandte Themen