Come si chiama questo ->
operatore dall'aspetto freccia trovato in PHP?
È un segno meno, trattino o trattino seguito da un segno maggiore di (o chevron destro).
Come si pronuncia quando si legge il codice ad alta voce?
Come si chiama questo ->
operatore dall'aspetto freccia trovato in PHP?
È un segno meno, trattino o trattino seguito da un segno maggiore di (o chevron destro).
Come si pronuncia quando si legge il codice ad alta voce?
Risposte:
Il nome ufficiale è "operatore oggetto" - T_OBJECT_OPERATOR . Lo chiamo "freccia".
T_DOUBLE_COLON
. Ti faccio +1 quando ricevo altri voti :)
$a->do()
è "A's method Do" ed $a->thing
è "A's property Thing", quindi è relativo.
T_PAAMAYIM_NEKUDOTAYIM
significa esattamente "doppio colon" in ebraico.
Lo chiamo " dardo "; come in $Foo->bar()
: "Foo dart bar"
Poiché molte lingue usano "punto" come in, Foo.bar();
volevo usare una parola a una sillaba. "Arrow" è troppo prolisso! ;)
Dato che PHP usa .
"punto" per la concatenazione (perché?) Non posso dire con certezza "punto" - potrebbe confondere.
Discutendo con un collega qualche tempo fa, abbiamo deciso di "dardo" come una parola abbastanza simile a "punto" per fluire comodamente, ma abbastanza distinto (almeno quando lo diciamo) per non essere confuso con un "punto" concatenante .
Quando leggo ad alta voce il codice PHP, non pronuncio l'operatore "->". Per $db->prepare($query);
lo più dico "Db [breve pausa] preparare query". Quindi immagino di parlarlo come una virgola in una frase normale.
Lo stesso vale per Paamayim Nekudotayim ("::").
Quando leggo il codice per me stesso, lo considero una "cosa possessiva".
Per esempio:
x->value = y->value
leggerebbe "il valore di x è uguale al valore di y"
Molto spesso, uso alcune variazioni sul metodo di @Tor Valamo ("il metodo B di A" o "il metodo B di A"), ma a volte dico "punto". Ad esempio "chiama A punto B ()".
->
in C / C ++ dove ha funzionalità diverse dall'operatore punto reale?
Operatore immobiliare.
Durante la lettura $a->b()
o ad $a->b
alta voce dico semplicemente "chiama b su $ a obj" o "ottieni b da / in / di $ a"
Personalmente mi piace essere verboso nell'esprimere verbalmente il mio codice.
per esempio:
$foo = new Foo();
echo $foo->bar
leggerebbe come tale:
echo (/ print) la proprietà bar dell'oggetto foo.
È prolisso e richiede più tempo, ma trovo se c'è una ragione per cui esprimo verbalmente il mio codice, quindi probabilmente devo essere chiaro su cosa sto comunicando esattamente.
La singola freccia può essere facilmente definita verbalmente come ciò che significa per PHP OOP: Membro. Quindi, per $a->var
te diresti "Object var's member var".
Quando leggi il codice ad alta voce, aiuta a leggere in anticipo (riferimento lookahead, scusa) e sapere a cosa potresti effettivamente riferirti. Ad esempio, abbiamo il seguente bit di codice:
<?php
Class MyClass {
$foo = 0;
public function bar() {
return $this->foo;
}
}
$myobject = new MyClass();
$myobject->bar();
?>
Quindi, se dovessi leggere ad alta voce questo blocco di codice come dimostrazione di codice, direi questo:
"Definisci classe 'MyClass', parentesi graffa aperta. La variabile 'pippo' è uguale a zero, termina la riga. Definisce parentesi aperte 'chiudi' barra ', parentesi graffa aperta. Restituisce la variabile membro' pippo 'dell'oggetto' questo ', termina la riga Close-brace, close-brace. Crea un'istanza della nuova istanza di "MyClass" (nessun argomento) come oggetto variabile "myobject", termina la riga. Chiama il metodo membro "bar" dell'oggetto "myobject", termina la riga. "
Tuttavia, se stessi leggendo il codice ad alta voce affinché altri studenti o programmatori lo copiassero senza visual, direi:
"PHP tag aperto (completo), newline, rientro, parentesi graffe di classe MyClass, newline. Indent, ['dollar-sign' | 'Object-marker'] foo è uguale a 0, punto e virgola, newline, newline. Barra delle funzioni pubbliche open- parentesi chiuse, parentesi graffa aperta, newline. Rientro, ritorno ['segno-dollaro' | | 'Marcatore oggetto'] questa freccia foo, punto e virgola, newline. Indentazione inversa, parentesi graffa chiusa, newline, rientro-rientro, parentesi graffa stretta , newline, newline. ['dollar-sign' | | 'Object-marker'] myobject è uguale a new MyClass open-close parentesi, punto e virgola, newline. ['dollar-sign' | '' Object-marker '] myobject freccia barra apri-chiudi parentesi, punto e virgola, newline. Indentazione inversa, tag di chiusura PHP. "
Dove vedi ['simbolo del dollaro' | 'Object-marker'], scegli semplicemente quello che tendi a parlare per '$', cambio tra i due frequentemente, dipende solo dal mio pubblico.
Quindi, per riassumere, in PHP, -> si riferisce a un membro di un oggetto, sia esso una variabile, un altro oggetto o un metodo.
Lo sviluppatore senior di PHP dove lavoro dice "freccia".
$A->B;
Quando mi sta dicendo di digitare quanto sopra, dirà "Dollar A arrow B" o for
$A->B();
"Dollaro A freccia B. parentesi."
Lo farei così:
//Instantiated object variable with the name mono call property name
$mono->name;
//Instantiated object variable with the name mono call method ship
$mono->ship();
Nel mio libro ( PHP Master di Lorna Mitchell) è chiamato l' operatore oggetto .
Il giapponese ha una particella conveniente per questo, "no" (の). È la particella possessiva, che significa approssimativamente "relativa al termine precedente".
"Fred の badger" significa "Fred's badger".
Il che è molto lungo nel dire che almeno mentalmente, e anche tra quelli che capiscono il giapponese, tendo a differenziarli leggendoli come:
$A->B(); // "Call $A's B."
C::D(); // "Call C の D."
Ma leggere sia come "" "possessivo" funziona anche per chi non parla giapponese. Puoi anche capovolgerli e usare "of", quindi "D of C" ... ma è un po 'imbarazzante, e difficile farlo stai leggendo rapidamente perché interrompe il tuo flusso lineare.
Se dovessi dettare, però, forse quando accoppiamo il codice e suggerisco cosa digitare, farei riferimento ai caratteri specifici come "trattino maggiore della freccia" e "doppio punto" (se conosco la persona con cui sto parlando to è un PHPophile, la prima volta potrei chiamarlo "paamayim nekudotayim double-colon", in parte perché è uno scherzo freddo, in parte per impedire loro di "correggermi").
->
è l'operatore di proprietà utilizzato per PHP in modalità orientata agli oggetti.
user187291 ha risposto alla domanda non soggettiva, per quanto riguarda quella soggettiva, dico "sub". Ad esempio, vorrei pronunciare $x->y
come "x sub y" - "sub" in questo contesto è l'abbreviazione di "pedice". Questo è più appropriato per la notazione di array; $x['y']
Inoltre pronuncio "x sub y". In genere quando leggo il codice ad alta voce, sto usando le mie parole per identificare una riga che l'altro sviluppatore può vedere, quindi l'ambiguità deve ancora diventare un problema. Credo che la causa sia che io considero le strutture / oggetti e le matrici come "raccolte", e i loro elementi sono sottoscritti come nella notazione matematica.