Wo verwenden wir den Objektoperator "->" in PHP?


75

Auf welche Weise können wir Objektoperatoren ->in PHP verwenden?


5
Warum ist das geschlossen? Die Leute stimmen dieser Frage 8 Jahre später zu, und es gibt genügend Antworten auf die Frage. Klar ist es ziemlich einfach zu sehen, was hier gefragt wird.
DeltaFlyer

1
@ DeltaFlyer Stimmen Sie für die Wiedereröffnung dieser Frage ab
Stephan

Antworten:


113

PHP hat zwei Objektoperatoren.

Die erste Option ->wird verwendet, wenn Sie eine Methode für eine Instanz aufrufen oder auf eine Instanzeigenschaft zugreifen möchten.

Die zweite Option ::wird verwendet, wenn Sie eine staticMethode aufrufen , auf eine staticVariable zugreifen oder die Version einer Methode einer übergeordneten Klasse innerhalb einer untergeordneten Klasse aufrufen möchten .


26

Beim Zugriff auf eine Methode oder eine Eigenschaft einer instanziierten Klasse

class SimpleClass
{
    // property declaration
    public $var = 'a default value';

    // method declaration
    public function displayVar() {
        echo $this->var;
    }
}

$a = new SimpleClass();
echo $a->var;
$a->displayVar();

6
wie Objekt-> Methodenname (); oder object-> prop_name; Dies bedeutet, dass der Operator dot (.) eher auf Klassenmethoden und -attribute zugreift.
Nektar

2
Ähnlich wie . Klassenoperator in Java, ja ... aber siehe die PHP-Klassendokumentation für Details
Mark Baker

10

Rufen Sie eine Funktion auf:

$foo->bar();

Zugriff auf eine Immobilie:

$foo->bar = 'baz';

Wo $fooist ein instanziiertes Objekt?


4

Es wird verwendet, wenn auf die Attribute eines instanziierten Objekts verwiesen wird. z.B:

class a {
    public $yourVariable = 'Hello world!';
    public function returnString() {
        return $this->yourVariable;
    }
}

$object = new a();
echo $object->returnString();
exit();

1

Der Operator "->" ist der PHP-bezogene aufrufbare Inhalt. Verwenden Sie immer, um eine Instanzmethode aufzurufen und auf eine Instanz zuzugreifen.

Der Bereichsoperator "::" wird für die Instanz verwendet, die zum Aufrufen der statischen Methode verwendet wird, und die Konstante unterscheidet sich stark von ::

Es ist eine richtige Antwort auf sie, ich habe neues Wissen.

Bitte überprüfen Sie die Namenskonflikte für den oben genannten unterschiedlichen Operator.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.