Warum wurde diese Frage als Duplikat einer Frage geschlossen, die mit dieser Frage verknüpft ist, um sie zu beantworten?
Ben
1
In C ++ heißt der Operator "->" "Mitglied des Zeigers", aber der PHP-Operator "->" ist tatsächlich näher am "." Operator in C ++ und das heißt "Mitglied des Objekts".
Beachten Sie, dass das lexikalische Token nicht immer das ist, worauf sich dieses Token normalerweise bezieht. Der Name von :: ist beispielsweise der "Bereichsauflösungsoperator", wird jedoch in diesem Artikel als aufgeführt T_DOUBLE_COLON. Ich werde +1 an Sie, wenn ich noch mehr Stimmen bekomme :)
Billy ONeal
1
Hört sich komisch an, wenn Sie lesen "Und nachdem B das Gehalt ausgeführt und zurückgegeben hat, A Pfeil C". Es wird eher so sein, als würde sich A auf C beziehen.
Ben
66
Billy hat recht, die meisten Leute nennen das :: a T_PAAMAYIM_NEKUDOTAYIM in ungezwungenen Gesprächen
Alan Storm
3
Ich würde sagen, es $a->do()ist "A's Methode Do" und $a->thingist "A's Property Thing", also ist es relativ.
Martin Lyne
1
Übrigens T_PAAMAYIM_NEKUDOTAYIMbedeutet auf Hebräisch genau "Doppelpunkt".
Neta
59
Ich nenne es " Dart "; wie in $Foo->bar(): "Foo Dart Bar"
Da viele Sprachen wie in "Punkt" verwenden, Foo.bar();wollte ich ein einsilbiges Wort verwenden. "Arrow" ist einfach zu langatmig! ;)
Da PHP ."Punkt" für die Verkettung verwendet (warum?), Kann ich nicht sicher "Punkt" sagen - es könnte verwirren.
Als wir uns vor einiger Zeit mit einem Kollegen unterhielten, entschieden wir uns für "Dart" als ein Wort, das "Punkt" ähnlich genug ist, um bequem zu fließen, aber deutlich genug (zumindest wenn wir es sagen), um nicht mit einem verkettenden "Punkt" verwechselt zu werden. .
Ich mag es! +1 für dich. Ich nehme an, es besteht die Gefahr, dass "Dart" in "Punkt" verwischt wird, wenn man laut spricht. Schade, dass "Pfeil" wahrscheinlich viel fester verwurzelt ist.
Phil Perry
Schön, das ist die Antwort, die ich am wahrscheinlichsten in meinem Kopf verwenden werde. Gute Begründung Ihrer Antwort.
Liam
Ich werde mich sicher daran erinnern.
Chev
Ich verstehe, wenn Sie Pfeil sagen ... Ich bin völlig verloren, wenn Sie Dart erwähnen
Emeka Mbah
39
Beim Vorlesen von PHP-Code spreche ich den Operator "->" nicht aus. Denn $db->prepare($query);ich sage meistens "Db [kurze Pause] Abfrage vorbereiten." Ich spreche es also wie ein Komma in einem regulären Satz.
Gleiches gilt für die Paamayim Nekudotayim ("::").
Meistens verwende ich eine Variation der Methode von @Tor Valamo ("die B-Methode von A" oder "A's B-Methode"), aber manchmal sage ich "Punkt". ZB "A Punkt B () aufrufen".
Ich sage immer "a dot b", weil es in so ziemlich jeder anderen Sprache so ist. PHP- und Nicht-PHP-Entwickler scheinen mich immer zu verstehen.
Gareth
1
Ja, ich greife auf "Punkt" zurück, da dies in den meisten anderen Sprachen dasselbe wie der Punktoperator bewirkt. Dann stellt sich die Frage, wie Sie ->C / C ++ aufrufen, wo es eine andere Funktionalität als der eigentliche Punktoperator hat.
Meagar
4
Immobilienbetreiber.
Beim Lesen $a->b()oder $a->blaut sage ich einfach "call b on the $ a obj" oder "get b from / in / of $ a".
@Marcus Adams - Nicht wirklich, da Methoden nur Eigenschaften sind, die in den meisten Sprachen Funktionen sind. Allein in PHP gibt es einen großen Unterschied, aber ich würde es trotzdem eine Eigenschaft nennen.
Tor Valamo
4
Ich persönlich mag es, meinen Code mündlich auszudrücken.
z.B:
$foo =newFoo();
echo $foo->bar
würde als solche lesen:
echo (/ print) die bar-Eigenschaft des Objekts foo.
Es ist ausführlich und zeitaufwändiger, aber wenn es einen Grund gibt, meinen Code mündlich auszudrücken, muss ich wahrscheinlich klar sein, was ich genau kommuniziere.
Ich fürchte, du hast mich verloren, Tomasz. :/ Was meinst du?
Craige
4
Harkening zurück zum Cobol 'in', wo Sie sagen würden "Bewegen Sie 5 nach b in a." Die meisten Sprachen qualifizieren heute die Dinge in die andere Richtung.
Trotzdem würde ich immer noch $a->b();als "Call b in a" lesen .
Der einzelne Pfeil kann leicht verbal als das bezeichnet werden, was er für PHP OOP: Member bedeutet. So für$a->var Sie würde sagen , „Objekt ein Mitglied auf var“.
Wenn Sie Code vorlesen, ist es hilfreich, vorauszulesen (Lookahead-Referenz, sorry) und zu wissen, worauf Sie sich möglicherweise tatsächlich beziehen. Lassen Sie uns zum Beispiel das folgende Codebit haben:
Wo Sie sehen ['Dollarzeichen' | 'Objektmarker'], wählen Sie einfach, was Sie für '$' sprechen. Ich wechsle häufig zwischen den beiden, hängt nur von meinem Publikum ab.
Zusammenfassend bezieht sich -> in PHP -> auf ein Mitglied eines Objekts, sei es entweder eine Variable, ein anderes Objekt oder eine Methode.
//Instantiated object variable with the name mono call property name
$mono->name;//Instantiated object variable with the name mono call method ship
$mono->ship();
In meinem Buch ( PHP Master von Lorna Mitchell) heißt es Objektoperator .
Japanisch hat dafür ein passendes Teilchen, "nein" (の). Es ist das besitzergreifende Teilchen, was ungefähr "in Bezug auf den vorhergehenden Begriff" bedeutet.
"Fred Dachs" bedeutet "Freds Dachs".
Das ist ein langer Weg zu sagen, dass ich zumindest mental und auch unter denen, die Japanisch verstehen, dazu neige, sie zu unterscheiden, indem ich sie lese als:
$A->B();// "Call $A's B."
C::D();// "Call C の D."
Aber beides als besitzergreifendes "'s" zu lesen, funktioniert auch für nicht-japanische Sprecher. Sie können sie auch umdrehen und "of" verwenden, also "D of C" ... aber das ist etwas umständlich, und schwer zu tun, lesen Sie schnell, weil es Ihren linearen Fluss unterbricht.
Wenn ich jedoch diktieren würde, wenn ich ein Paar codiere und vorschlage, was ich eingeben soll, würde ich die spezifischen Zeichen als "Strich größer als Pfeil" und "Doppelpunkt" bezeichnen (wenn ich die Person kenne, mit der ich spreche Um ein PHPophiler zu sein, könnte ich das beim ersten Mal als "paamayim nekudotayim Doppelpunkt" bezeichnen, teils weil es ein cooler Scherz ist, teils um zu verhindern, dass sie mich "korrigieren".
user187291 hat die nicht subjektive Frage beantwortet, während ich für die subjektive Frage "sub" sage. Zum Beispiel würde ich $x->yals "x sub y" aussprechen - "sub" ist in diesem Zusammenhang die Abkürzung für "tiefgestellt". Dies ist besser für die Array-Notation geeignet. $x['y']Ich spreche auch "x sub y" aus. Wenn ich Code laut vorlese, benutze ich normalerweise meine Wörter, um eine Zeile zu identifizieren, die der andere Entwickler sehen kann, sodass die Mehrdeutigkeit noch kein Problem darstellt. Ich glaube, die Ursache ist, dass ich Strukturen / Objekte und Arrays als "Sammlungen" betrachte und Elemente davon wie in der mathematischen Notation tiefgestellt sind.
Antworten:
Der offizielle Name lautet " Objektoperator " - T_OBJECT_OPERATOR . Ich nenne es "Pfeil".
quelle
T_DOUBLE_COLON
. Ich werde +1 an Sie, wenn ich noch mehr Stimmen bekomme :)$a->do()
ist "A's Methode Do" und$a->thing
ist "A's Property Thing", also ist es relativ.T_PAAMAYIM_NEKUDOTAYIM
bedeutet auf Hebräisch genau "Doppelpunkt".Ich nenne es " Dart "; wie in
$Foo->bar()
: "Foo Dart Bar"Da viele Sprachen wie in "Punkt" verwenden,
Foo.bar();
wollte ich ein einsilbiges Wort verwenden. "Arrow" ist einfach zu langatmig! ;)Da PHP
.
"Punkt" für die Verkettung verwendet (warum?), Kann ich nicht sicher "Punkt" sagen - es könnte verwirren.Als wir uns vor einiger Zeit mit einem Kollegen unterhielten, entschieden wir uns für "Dart" als ein Wort, das "Punkt" ähnlich genug ist, um bequem zu fließen, aber deutlich genug (zumindest wenn wir es sagen), um nicht mit einem verkettenden "Punkt" verwechselt zu werden. .
quelle
Beim Vorlesen von PHP-Code spreche ich den Operator "->" nicht aus. Denn
$db->prepare($query);
ich sage meistens "Db [kurze Pause] Abfrage vorbereiten." Ich spreche es also wie ein Komma in einem regulären Satz.Gleiches gilt für die Paamayim Nekudotayim ("::").
quelle
Wenn ich mir den Code vorlese, halte ich ihn für eine "besitzergreifende Sache".
Beispielsweise:
würde lesen "x Wert ist gleich y Wert"
quelle
Meistens verwende ich eine Variation der Methode von @Tor Valamo ("die B-Methode von A" oder "A's B-Methode"), aber manchmal sage ich "Punkt". ZB "A Punkt B () aufrufen".
quelle
->
C / C ++ aufrufen, wo es eine andere Funktionalität als der eigentliche Punktoperator hat.Immobilienbetreiber.
Beim Lesen
$a->b()
oder$a->b
laut sage ich einfach "call b on the $ a obj" oder "get b from / in / of $ a".quelle
Ich persönlich mag es, meinen Code mündlich auszudrücken.
z.B:
würde als solche lesen:
Es ist ausführlich und zeitaufwändiger, aber wenn es einen Grund gibt, meinen Code mündlich auszudrücken, muss ich wahrscheinlich klar sein, was ich genau kommuniziere.
quelle
Harkening zurück zum Cobol 'in', wo Sie sagen würden "Bewegen Sie 5 nach b in a." Die meisten Sprachen qualifizieren heute die Dinge in die andere Richtung.
Trotzdem würde ich immer noch
$a->b();
als "Call b in a" lesen .quelle
Ich nenne als "param b von $ a".
Ich rufe als "Funktion b von $ a" auf.
quelle
Der einzelne Pfeil kann leicht verbal als das bezeichnet werden, was er für PHP OOP: Member bedeutet. So für
$a->var
Sie würde sagen , „Objekt ein Mitglied auf var“.Wenn Sie Code vorlesen, ist es hilfreich, vorauszulesen (Lookahead-Referenz, sorry) und zu wissen, worauf Sie sich möglicherweise tatsächlich beziehen. Lassen Sie uns zum Beispiel das folgende Codebit haben:
Wenn ich diesen Codeblock als Demonstration des Codes vorlesen würde, würde ich Folgendes sagen:
Wenn ich jedoch den Code vorlesen würde, damit andere Schüler oder Programmierer ihn ohne Bild kopieren können, würde ich sagen:
Wo Sie sehen ['Dollarzeichen' | 'Objektmarker'], wählen Sie einfach, was Sie für '$' sprechen. Ich wechsle häufig zwischen den beiden, hängt nur von meinem Publikum ab.
Zusammenfassend bezieht sich -> in PHP -> auf ein Mitglied eines Objekts, sei es entweder eine Variable, ein anderes Objekt oder eine Methode.
quelle
Der leitende PHP-Entwickler, bei dem ich arbeite, sagt "Pfeil".
Wenn er mir sagt, ich soll das Obige eingeben, sagt er "Dollar A Pfeil B" oder für
"Dollar A Pfeil B Parens."
quelle
Ich würde es so machen:
In meinem Buch ( PHP Master von Lorna Mitchell) heißt es Objektoperator .
quelle
Japanisch hat dafür ein passendes Teilchen, "nein" (の). Es ist das besitzergreifende Teilchen, was ungefähr "in Bezug auf den vorhergehenden Begriff" bedeutet.
"Fred Dachs" bedeutet "Freds Dachs".
Das ist ein langer Weg zu sagen, dass ich zumindest mental und auch unter denen, die Japanisch verstehen, dazu neige, sie zu unterscheiden, indem ich sie lese als:
Aber beides als besitzergreifendes "'s" zu lesen, funktioniert auch für nicht-japanische Sprecher. Sie können sie auch umdrehen und "of" verwenden, also "D of C" ... aber das ist etwas umständlich, und schwer zu tun, lesen Sie schnell, weil es Ihren linearen Fluss unterbricht.
Wenn ich jedoch diktieren würde, wenn ich ein Paar codiere und vorschlage, was ich eingeben soll, würde ich die spezifischen Zeichen als "Strich größer als Pfeil" und "Doppelpunkt" bezeichnen (wenn ich die Person kenne, mit der ich spreche Um ein PHPophiler zu sein, könnte ich das beim ersten Mal als "paamayim nekudotayim Doppelpunkt" bezeichnen, teils weil es ein cooler Scherz ist, teils um zu verhindern, dass sie mich "korrigieren".
quelle
Objekt. Also
$a->$b->$c
wäre 'A Objekt B Objekt c'.quelle
->
ist der Eigenschaftsoperator, der für PHP im objektorientierten Modus verwendet wird.quelle
user187291 hat die nicht subjektive Frage beantwortet, während ich für die subjektive Frage "sub" sage. Zum Beispiel würde ich
$x->y
als "x sub y" aussprechen - "sub" ist in diesem Zusammenhang die Abkürzung für "tiefgestellt". Dies ist besser für die Array-Notation geeignet.$x['y']
Ich spreche auch "x sub y" aus. Wenn ich Code laut vorlese, benutze ich normalerweise meine Wörter, um eine Zeile zu identifizieren, die der andere Entwickler sehen kann, sodass die Mehrdeutigkeit noch kein Problem darstellt. Ich glaube, die Ursache ist, dass ich Strukturen / Objekte und Arrays als "Sammlungen" betrachte und Elemente davon wie in der mathematischen Notation tiefgestellt sind.quelle