¿Cómo se llama a este ->
operador de flecha que se encuentra en PHP?
Es un signo menos, un guión o un guión seguido de un signo mayor que (o el galón derecho).
¿Cómo se pronuncia al leer el código en voz alta?
¿Cómo se llama a este ->
operador de flecha que se encuentra en PHP?
Es un signo menos, un guión o un guión seguido de un signo mayor que (o el galón derecho).
¿Cómo se pronuncia al leer el código en voz alta?
Respuestas:
El nombre oficial es "operador de objeto" - T_OBJECT_OPERATOR . Yo lo llamo "flecha".
T_DOUBLE_COLON
. Te haré +1 cuando tenga más votos :)
$a->do()
es "El método de A hacer" y $a->thing
es la "Cosa de propiedad de A", por lo que es relativo.
T_PAAMAYIM_NEKUDOTAYIM
exactamente significa "doble colon" en hebreo.
Yo lo llamo " dardo "; como en $Foo->bar()
: "Foo dart bar"
Como muchos idiomas usan "punto" como en " Foo.bar();
yo quería una palabra de una sílaba". ¡"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 similar a "punto" para fluir cómodamente, pero lo suficientemente distinta (al menos cuando lo decimos) para no ser confundido con un "punto" concatenante .
Al leer el código PHP en voz alta, no pronuncio el operador "->". En $db->prepare($query);
su mayoría digo "Db [pausa corta] preparar consulta". Así que supongo que lo digo como una coma en una oración regular.
Lo mismo ocurre con los Paamayim Nekudotayim ("::").
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 al valor de y"
Muy a menudo, 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". Por ejemplo, "llamar a un punto B ()".
->
en C / C ++ donde tiene una funcionalidad diferente del operador de punto real?
Operador de propiedades.
Cuando leo $a->b()
o en $a->b
voz alta, solo digo "llame a b en el $ a obj" o "obtenga b de / en / de $ a"
Personalmente, me gusta ser detallado al expresar mi código verbalmente.
p.ej:
$foo = new Foo();
echo $foo->bar
leería como tal:
echo (/ print) la propiedad de la barra del objeto foo.
Es detallado y requiere más tiempo, pero descubro que si hay una razón para que exprese mi código verbalmente, entonces probablemente necesito tener claro qué estoy comunicando exactamente.
La flecha simple se puede referir fácilmente verbalmente como lo que significa para PHP OOP: Miembro. Entonces, para $a->var
usted diría "Object a's member var".
Al leer el código en voz alta, es útil leer con anticipación (referencia anticipada, lo siento) y saber a qué se refiere realmente. Por ejemplo, tengamos el siguiente bit de código:
<?php
Class MyClass {
$foo = 0;
public function bar() {
return $this->foo;
}
}
$myobject = new MyClass();
$myobject->bar();
?>
Entonces, 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. La variable 'foo' es igual a cero, terminar la línea. Definir la función pública 'barra' abrir-cerrar paréntesis, llave abierta. Devolver la variable miembro 'foo' del objeto 'esto', terminar la línea . Cerrar-llave, cerrar-llave. Instanciar una nueva instancia de 'MyClass' (sin argumentos) como objeto variable 'myobject', terminar línea. Llamar al método miembro 'bar' del objeto 'myobject', terminar línea ".
Sin embargo, si estuviera leyendo el código en voz alta para que otros estudiantes o programadores lo copiaran sin un visual, entonces diría:
"PHP etiqueta abierta (completa), nueva línea, sangría, Clase MyClass abra-llave, nueva línea. Sangría, ['signo de dólar' | 'Marcador de objeto'] foo es igual a 0, punto y coma, nueva línea, nueva línea. Barra de función pública abierta- paréntesis, paréntesis abierto, nueva línea. Sangría, devuelva ['signo de dólar' | 'Marcador de objeto'] esta flecha foo, punto y coma, nueva línea. Sangría inversa, paréntesis cerrada, nueva línea, sangría inversa, paréntesis cerrado , nueva línea, nueva línea. ['signo de dólar' | 'Marcador de objeto'] miobjeto es igual a nuevos paréntesis de apertura-cierre de MyClass, punto y coma, nueva línea. ['signo de dólar' | 'Marcador de objeto'] barra de flecha de miobjeto abrir-cerrar paréntesis, punto y coma, nueva línea. Sangría inversa, etiqueta de cierre PHP ".
Donde ves ['signo de dólar' | 'Marcador de objeto'], simplemente elige el que sueles hablar por '$', cambio entre los dos con frecuencia, solo depende de mi audiencia.
Entonces, para resumir, en PHP, -> se refiere a un miembro de un objeto, ya sea una variable, otro objeto o un método.
El desarrollador senior de PHP donde trabajo dice "flecha".
$A->B;
Cuando me dice que escriba lo anterior, me dice "Dólar A flecha B" o
$A->B();
"Dólar A flecha B parens".
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 de Lorna Mitchell) se llama el operador de objeto .
El japonés tiene una partícula conveniente para esto, "no" (の). Es la partícula posesiva, que significa aproximadamente "relacionada con el término anterior".
"Tejón de Fred" significa "tejón de Fred".
Lo cual es un largo camino para decir que, al menos mentalmente, y también entre aquellos que entienden japonés, tiendo a diferenciarlos al leerlos como:
$A->B(); // "Call $A's B."
C::D(); // "Call C の D."
Pero leer ambos como "posesivos" posesivos también funciona para los hablantes no japoneses. También puede voltearlos y usar "de", así que "D de C" ... pero eso es un poco incómodo, y es difícil hacerlo, está leyendo rápidamente porque interrumpe su flujo lineal.
Sin embargo, si estuviera dictando, tal vez cuando empareje la codificación y sugiera qué escribir, me referiría a los caracteres específicos como "guión mayor que la flecha" y "dos puntos" (si conozco a la persona con la que estoy hablando) es un PHPophile, podría llamarlo un "doble punto paamayim nekudotayim" la primera vez, en parte porque es una broma genial, en parte para evitar que me "corrijan".
->
es el operador de propiedad utilizado para PHP en modo orientado a objetos.
user187291 ha respondido a la pregunta no subjetiva, en cuanto a la subjetiva, digo "sub". Por ejemplo, yo diría $x->y
como "x sub y" - "sub" en este contexto es la abreviatura de "subíndice". Esto es más apropiado para la notación de matriz; $x['y']
También pronuncio "x sub y". Por lo general, cuando leo 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 aún no se ha convertido en un problema. Creo que la causa es que veo las estructuras / objetos y matrices como "colecciones", y sus elementos están subcriptados como en notación matemática.