2010-04-06 13 views
107

¿Cómo se llama esta flecha mirando el operador -> que se encuentra en PHP?¿Cómo se llama el operador PHP "->" y cómo lo dice al leer el código en voz alta?

Es un signo menos, guión o guión seguido de un signo mayor que (o cheurón derecho).

¿Cómo se pronuncia al leer el código en voz alta?

+7

¿Por qué se ha cerrado esta pregunta como un duplicado de una pregunta que vincula a esta pregunta para responderla? – Ben

+0

En C++, el operador "->" se llama "miembro del puntero" pero el operador PHP "->" está realmente más cerca del "." operador en C++ y que se llama "miembro de objeto". – user34660

Respuesta

126

El nombre oficial es "operador de objeto" - T_OBJECT_OPERATOR. Yo lo llamo "flecha".

+8

Tenga en cuenta que el token léxico no es siempre lo que usualmente se refiere a ese token. Por ejemplo, el nombre de :: :: es el "operador de resolución de alcance" pero se menciona en ese artículo como 'T_DOUBLE_COLON'. Te llamaré +1 cuando reciba más votos :) –

+1

Bueno, suena raro si lees "Y después de que B ejecuta y devuelve el salario, una flecha C". Será más como que A se refiere a C. – Ben

+60

Billy tiene razón, la mayoría de las personas llaman :: a T_PAAMAYIM_NEKUDOTAYIM en conversación informal –

4

Operador de la propiedad.

Al leer $a->b() o $a->b fuerte que acaba de decir "llamada de b en el $ un obj" o "hágase b desde/en/de $ a"

+1

@Tor, supongo, "Operador de método" también. –

+0

@Marcus Adams - En realidad, no es así, ya que los métodos son solo propiedades que resultan ser funciones en la mayoría de los lenguajes. Sin embargo, solo en PHP hay una gran diferencia, pero aún así la llamaría una propiedad. –

9

mayoría de las veces, utilizo alguna variación en el método de @Tor Valamo ("el método B de A" o el "método B de A"), pero a veces digo "punto". P.ej. "llamar A punto B()".

+5

Siempre digo "a dot b" ​​porque así es en casi todos los demás idiomas. Los desarrolladores PHP y no PHP siempre parecen entenderme. – Gareth

+1

Sí, vuelvo a "punto" ya que logra lo mismo que el operador punto en la mayoría de los otros idiomas. La pregunta entonces se convierte en, ¿cómo se llama '->' en C/C++ donde tiene una funcionalidad diferente del operador de punto real? – meagar

1

El desarrollador senior de PHP donde trabajo dice "flecha".

$A->B; 

Cuando me está diciendo que escribir lo anterior, que va a decir, "dólar Una flecha B" o de

$A->B(); 

"dólar por parens flecha B".

38

Al leer el código PHP en voz alta, no pronuncio el operador "->". Para $db->prepare($query); digo principalmente "Db [pausa corta] prepare query." Así que supongo que lo hablo como una coma en una oración regular.

Lo mismo ocurre con el Paamayim Nekudotayim ("::").

+9

El Paamayah whata? jk – ValleyDigital

+0

También conocido como [Operador de resolución de alcance] (http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php) – CommandZ

+0

Me gusta llamar a Paamayim Nekudotayim ("::") " CoCo "como abreviatura de" colon colon " – Umbrella

14

Al leer el código para mí, lo considero una "cosa posesiva".

Por ejemplo:

x->value = y->value 

leería "el valor de x es igual y de valor"

4

remontándose a la Cobol 'en', donde se podría decir "Mover 5 a b en una". La mayoría de los idiomas de hoy califica las cosas en la otra dirección.

Sin embargo, todavía leería $a->b(); como "Llamar b en a".

4
$a->b 

Llamo como "param b of $ a".

$a->b() 

Llamo como "función b de $ a".

3

Personalmente me gusta ser prolijo al expresar mi código verbalmente.

p. Ej.:

$foo = new Foo(); 
echo $foo->bar 

leerían como tal:

eco (/ impresión) la propiedad de barras de objeto foo.

Es prolijo y lleva más tiempo, pero me parece que si hay una razón para que exprese mi código verbalmente, entonces probablemente tenga que ser claro en cuanto a lo que estoy comunicando exactamente.

+0

Me temo que me has perdido, Tomasz. :/ ¿Qué quieres decir? – Craige

47

Lo llamo "dart"; como en $Foo->bar(): "Foo dart bar"

Dado que muchos idiomas usan "punto" como en Foo.bar();, quería una palabra de una sílaba para usar. ¡"Arrow" es demasiado largo! ;)

Dado que PHP usa . "punto" para la concatenación (¿por qué?) No puedo decir con seguridad "punto" - podría confundir.

Hablando con un compañero de trabajo hace un tiempo, decidimos "dardo" como una palabra lo suficientemente parecida a "punto" para fluir cómodamente, pero lo suficientemente distinta (al menos cuando lo decimos) para no confundirnos con un "punto" concatenado

+1

¡Me gusta eso! +1 para ti. Supongo que hay algún peligro de arrastrar "dardo" a "punto" cuando se habla en voz alta. Demasiado malo, la "flecha" probablemente esté mucho más atrincherada. –

+0

Bien, esta es la respuesta que probablemente use en mi cabeza. Buena justificación de tu respuesta. – Liam

+0

Lo recordaré de seguro. – Chev

0

-> es el operador de propiedad utilizado para PHP en el modo orientado a objeción.

0

Objeto. Entonces $a->$b->$c sería 'Un objeto B objeto c'.

1

lo haría así:

//Instantiated object variable with the name mono call property name 
$mono->name; 

//Instantiated object variable with the name mono call method ship 
$mono->ship(); 

En mi libro (PHP Master por Lorna Mitchell) Se llama al operador objeto.

2

La flecha simple se puede referir verbalmente como lo que significa para PHP OOP: Member. Por lo tanto, para $a->var, diría "Var de miembro de Object a".

Al leer el código en voz alta, ayuda leer con anticipación (referencia de búsqueda anticipada, lo siento) y saber a qué se está refiriendo en realidad. Por ejemplo, vamos a tener el siguiente fragmento de código:

<?php 
    Class MyClass { 
    $foo = 0; 

    public function bar() { 
     return $this->foo; 
    } 
    } 

    $myobject = new MyClass(); 
    $myobject->bar(); 
?> 

Así que, si tuviera que leer en voz alta este bloque de código como una demostración de código, diría esto:

"Definir Clase ' MyClass ', llave abierta. Variable' foo 'es igual a cero, termina la línea. Define la función pública' barra 'abre y cierra paréntesis, llave abierta. Devuelve la variable miembro' foo 'del objeto' esto ', termina la línea. Cierre la nueva instancia de 'MyClass' (sin argumentos) como el objeto variable 'myobject', termine la línea. Llame al método miembro 'bar' del objeto 'myobject', terminate line.

Sin embargo, si estuviera leyendo el código voz alta para otros estudiantes o programadores para copiar sin visual, entonces yo diría:

"PHP etiqueta abierta (completa), nueva línea, guión, Clase MyClass abrazadera, nueva línea.Sangría, ['dólar-signo' | 'Object-marker'] foo es igual a 0, punto y coma, nueva línea, nueva línea. barra de funciones públicas abrir-cerrar paréntesis, llaves abiertas, nueva línea. Sangría, return ['dollar-sign' | 'Object-marker'] esta flecha foo, punto y coma, nueva línea. Sangrado inverso, corchete cerrado, nueva línea, sangría inversa, corchete cerrado, nueva línea, nueva línea. ['signo de dólar' | 'Object-marker'] myobject es igual al nuevo MyClass abrir-cerrar paréntesis, punto y coma, nueva línea. ['signo de dólar' | 'Object-marker'] barra de flecha de myobject abre-cierra paréntesis, punto y coma, nueva línea. Reverse-guión, PHP etiqueta de cierre "

Dónde se ve. [ 'Signo de dólar' | 'a objetos marcador'], simplemente selecciona lo que se tiende a hablar en nombre de '$', alterno entre los dos con frecuencia , sólo depende de mi público

por lo tanto, para resumir, en PHP, -.> se refiere a un miembro de un objeto, ya sea ya sea una variable, otro objeto, o un método

0

user187291 tiene. respondió la pregunta no subjetiva, en cuanto a la subjetiva, digo "sub". Por ejemplo, pronuncio $x->y como "x sub y" - "sub" en este contexto es la abreviatura de "subíndice". Esto es más apropiado para matriz no tación; $x['y'] También pronuncio "x sub y". Normalmente, al leer el código en voz alta, estoy usando mis palabras para identificar una línea que el otro desarrollador puede ver, por lo que la ambigüedad todavía no se ha convertido en un problema. Creo que la causa es que veo estructuras/objetos y matrices como "colecciones", y los elementos de los mismos están suscritos como en notación matemática.

0

japonés tiene una partícula conveniente para esto, "no" (の). Es la partícula posesiva, que significa aproximadamente "relacionada con el término anterior".

"Fred の tejón" significa "tejón de Fred".

que es una larga ronda forma de decir que al menos mentalmente, y también entre aquellos que entienden japonés, tiendo a diferenciarlos mediante la lectura de ellos como:

$A->B(); // "Call $A's B." 
C::D(); // "Call C の D." 

Pero la lectura tanto como posesivo "' s "también funciona para hablantes no japoneses. También puedes voltearlos y usar "de", así que "D de C" ... pero eso es un poco incómodo, y es difícil de hacer, estás leyendo rápidamente porque rompe tu flujo lineal.

Si estuviera dictando, sin embargo, tal vez al codificar el par y sugerir qué escribir, me referiría a los caracteres específicos como "dash-greater-than arrow" y "double-colon" (si conozco a la persona Estoy hablando de que es un PHPophile, podría llamarlo "paamayim nekudotayim double-colon" la primera vez, en parte porque es una broma genial, en parte para evitar que me "corrijan").

Cuestiones relacionadas