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

75

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

Nektar
quelle
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 .

Powerlord
quelle
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();
Mark Baker
quelle
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?

mmattax
quelle
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();
Wind Chimez
quelle
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.

李 沣 泉
quelle