que - ¿A qué se llama el operador PHP "->" y cómo lo dice al leer el código en voz alta?
lista de comandos php (16)
Al leer el código PHP en voz alta, no pronuncio el operador "->". Para $db->prepare($query);
Casi siempre digo "Db [pausa corta] prepara la consulta". Así que supongo que lo hablo como una coma en una oración regular.
Lo mismo vale para el Paamayim Nekudotayim ("::").
¿Cómo se llama a esta flecha buscando ->
operador encontrado en PHP?
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?
Al leer el código para mí, lo veo como una "cosa posesiva".
Por ejemplo:
x->value = y->value
leería "el valor de x es igual al valor de y"
El desarrollador senior de PHP donde trabajo dice "flecha".
$A->B;
Cuando me diga que escriba lo anterior, dirá: "Dollar A, flecha B" o
$A->B();
"Dollar A arrow B parens".
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".
"Fred の tejón" significa "el 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 leyéndolos como:
$A->B(); // "Call $A''s B."
C::D(); // "Call C の D."
Pero leer ambos como un "posesivo" posesivo 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.
Sin embargo, si estuviera dictando, quizás cuando el par codifique y sugiera qué escribir, me referiría a los caracteres específicos como "dash-greater-than arrow" y "double-colon" (si conozco a la persona que estoy hablando) to es un PHPophile, podría llamarlo "paamayim nekudotayim double-colon" la primera vez, en parte porque es una buena broma, en parte para evitar que me "corrijan").
El nombre oficial es "operador de objeto" - T_OBJECT_OPERATOR . Yo lo llamo "flecha".
Harkening back to the Cobol ''in'' donde dirías "Mover 5 a b en a". 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".
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 (mirar hacia adelante, lo siento), y saber a qué se refiere en realidad. 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. Variable ''foo'' es igual a cero, terminar línea. Definir función pública ''barra'' abrir-cerrar paréntesis, abrir abrazadera. Devolver variable miembro ''foo'' del objeto ''esto'', terminar línea . Cerrar-llave, llave cerrada. Crear una instancia nueva de ''MyClass'' (sin argumentos) como objeto variable ''myobject'', terminar línea. Llamar al método miembro ''barra'' del objeto ''myobject'', terminar línea.
Sin embargo, si estuviera leyendo el código en voz alta para que otros estudiantes o programadores lo copien sin una presentación visual, entonces diría:
"PHP open tag (full), newline, indent, Clase MyClass open-brace, newline. Sangría, [''dollar-sign'' | ''Object-marker''] foo es igual a 0, punto y coma, newline, newline. Public function bar open- cerrar paréntesis, abrir llaves, nueva línea Sangría, regresar [''dólar-signo'' | ''Objeto-marcador''] esta flecha foo, punto y coma, nueva línea. Invertir sangría, cerrar llaves, nueva línea, sangría inversa, cierre de llaves , newline, newline. [''dollar-sign'' | ''Object-marker''] myobject igual a new MyClass abrir-cerrar paréntesis, punto y coma, nueva línea. [''dollar-sign'' | ''Object-marker''] myobject flecha barra abrir-cerrar paréntesis, punto y coma, nueva línea. Invertir sangría, PHP cerrar etiqueta.
Donde ves [''dollar-sign'' | ''Object-marker''], simplemente elija lo que suela 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.
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 el operador de objetos .
Muy a menudo, uso 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, "llame A dot B ()".
Objeto. Entonces $a->$b->$c
sería ''Un objeto B objeto c''.
Operador de propiedad
Al leer $a->b()
o $a->b
voz alta, solo digo "call b on the $ a obj" o "get b from / in / of $ a"
Personalmente me gusta ser prolijo al expresar mi código verbalmente.
p.ej:
$foo = new Foo();
echo $foo->bar
leería como tal:
echo (/ print) la propiedad bar del 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.
Yo lo llamo " dardo "; como en $Foo->bar()
: "Foo dart bar"
Dado que muchos idiomas usan "punto" como en Foo.bar();
Yo quería una palabra de una sílaba para usar. ¡"Arrow" es demasiado largo! ;)
Desde PHP usa .
"punto" para 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 ser confundida con un "punto" concatenado .
->
es el operador de propiedad utilizado para PHP en el modo orientado a objeción.
user187291 ha respondido 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 la notación de matriz; $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.
$a->b
Llamo como "param b de $ a".
$a->b()
Llamo como "función b de $ a".