Como é chamado o operador PHP “->” e como você diz isso quando lê código em voz alta? [fechadas]

127

Como você chama esse ->operador de seta encontrado em PHP?

É um sinal de menos, traço ou hífen, seguido de um sinal maior que (ou divisa direita).

Como você o pronuncia ao ler o código em voz alta?

Jake
fonte
12
Por que esta pergunta foi encerrada como duplicata de uma pergunta que se vincula a essa pergunta para respondê-la?
Ben
1
Em C ++, o operador "->" é chamado "membro do ponteiro", mas o operador PHP "->" está realmente mais próximo do "." operador em C ++ e que é chamado "membro do objeto".
user34660

Respostas:

134

O nome oficial é "operador de objeto" - T_OBJECT_OPERATOR . Eu chamo de "flecha".

user187291
fonte
9
Observe que o token lexical nem sempre é o que geralmente é referido. Por exemplo, o nome de :: é o "operador de resolução de escopo", mas é listado nesse artigo como T_DOUBLE_COLON. Vou +1 para você quando eu chegar mais alguns votos :)
Billy Oneal
1
Bem, soa estranho se você ler "E depois de B executar e devolver o salário, A seta C". Vai ser mais como um refere-se a C.
Ben
66
Direito de Billy, a maioria das pessoas chamar a :: a T_PAAMAYIM_NEKUDOTAYIM em uma conversa casual
Alan Storm
3
Eu diria que $a->do()é o "método A de" e $a->thing"A propriedade da coisa", portanto é relativo.
Martin Lyne
1
Aliás, T_PAAMAYIM_NEKUDOTAYIMexatamente significa "dois pontos duplos" em hebraico.
Neta
59

Eu chamo de " dardo "; como em $Foo->bar(): "Foo dart bar"

Como muitos idiomas usam "ponto", como Foo.bar();eu queria, use uma palavra de uma sílaba. "Arrow" é muito longo! ;)

Como o PHP usa ."ponto" para concatenação (por quê?), Não posso dizer com segurança "ponto" - isso pode confundir.

Discutindo com um colega de trabalho há um tempo, decidimos "dardo" como uma palavra semelhante o suficiente para "pontilhar" para fluir confortavelmente, mas distinta o suficiente (pelo menos quando dizemos) para não ser confundida com um "ponto" concatenador .

Guarda-chuva
fonte
1
Eu gosto disso! +1 para você. Suponho que haja algum perigo de colocar "dardo" em "ponto" quando falar em voz alta. Uma "flecha" muito ruim é provavelmente muito mais entrincheirada.
Phil Perry
Bom, esta é a resposta que provavelmente usarei na minha cabeça. Boa justificativa para sua resposta.
Liam
Vou lembrar disso com certeza.
Chev
Eu entendo se você diz flecha ... eu ser completamente perdido se você mencionar dardo
Emeka Mbah
39

Ao ler o código PHP em voz alta, não pronuncio o operador "->". Pois $db->prepare($query);geralmente digo "Db [pausa curta] prepare a consulta". Acho que falo como uma vírgula em uma frase regular.

O mesmo vale para os Paamayim Nekudotayim ("::").

selfawaresoup
fonte
10
O Paamayah, o que? jk
ValleyDigital
1
Também
1
Eu gosto de chamar Paamayim Nekudotayim ( "::") "CoCo", como abreviação de "cólon cólon"
Umbrella
14

Ao ler o código para mim, penso nele como uma "coisa possessiva".

Por exemplo:

x->value = y->value

leria "o valor de x é igual ao valor de y"

Dan Mantyla
fonte
9

Na maioria das vezes, uso alguma variação no método de Tor Valamo ("o método B de A" ou "método B de A"), mas às vezes digo "ponto". Por exemplo, "chame A ponto B ()".

sprugman
fonte
5
Eu sempre digo "a dot b" ​​porque é assim em praticamente todos os outros idiomas. Devs PHP e não PHP sempre parecem me entender.
63010 Gareth
1
Sim, volto ao "ponto", pois ele realiza a mesma coisa que o operador de ponto na maioria dos outros idiomas. A pergunta então é: como você chama ->C / C ++, onde ele tem uma funcionalidade diferente do operador de ponto real?
meagar
4

Operador de propriedade.

Ao ler $a->b()ou em $a->bvoz alta, basta dizer "chame b no $ a obj" ou "obtenha b de / no / de $ a"

Tor Valamo
fonte
1
@ Tor, eu acho, "operador de método" também.
Marcus Adams
@ Marcus Adams - Na verdade, visto que os métodos são apenas propriedades que, por acaso, são funções na maioria dos idiomas. Apenas no PHP, porém, há uma grande distinção, mas eu ainda chamaria de propriedade.
precisa saber é o seguinte
4

Eu pessoalmente gosto de ser detalhado ao expressar meu código verbalmente.

por exemplo:

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

leria assim:

echo (/ print) a propriedade bar do objeto foo.

É detalhado e consome mais tempo, mas acho que, se há uma razão para expressar meu código verbalmente, provavelmente preciso esclarecer exatamente o que estou comunicando.

Craige
fonte
Receio que você tenha me perdido, Tomasz. :/ O que você quer dizer?
Craige
4

Voltando ao Cobol 'in', onde você diria "Mova 5 para b em a". Hoje, a maioria dos idiomas qualifica as coisas na outra direção.

Ainda assim, eu ainda leria $a->b();como "Chamada b em a".

Don
fonte
4
$a->b 

Eu chamo como "param b de $ a".

$a->b()

Eu chamo como "função b de $ a".

ganu
fonte
3

A seta única pode ser facilmente referida verbalmente como o que significa para o PHP OOP: Member. Então, para $a->varvocê dizer "Obj a var de membro a".

Ao ler o código em voz alta, ajuda ler adiante (referência à vista, desculpe) e saber a que você pode realmente estar se referindo. Por exemplo, vamos ter o seguinte pedaço de código:

<?php
  Class MyClass {
    $foo = 0;

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

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

Portanto, se eu lesse em voz alta esse bloco de código como uma demonstração de código, eu diria o seguinte:

"Definir classe 'MyClass', chave aberta. A variável 'foo' é igual a zero, encerra a linha. Defina a função pública 'bar' entre parênteses abrir-fechar, chave-aberta. Retorne a variável de membro 'foo' do objeto 'this', finalize a linha Instale uma nova instância de 'MyClass' (sem argumentos) como objeto variável 'myobject', termine a linha. Chame o método do membro 'bar' do objeto 'myobject', termine a linha. "

No entanto, se eu estivesse lendo o código em voz alta para outros estudantes ou programadores copiarem sem visual, eu diria:

"Tag aberta PHP (completa), nova linha, recuo, chave aberta da classe MyClass, nova linha. Recuo, ['sinal de dólar' | 'Marcador de objeto'] foo é igual a 0, ponto-e-vírgula, nova linha, nova linha. Barra de função pública aberta parênteses próximos, parênteses abertos, nova linha. Recuar, retornar ['sinal de dólar' | 'Marcador de objeto'] essa seta foo, ponto e vírgula, nova linha. Recuo reverso, chave curta, nova linha, recuo reverso, chave curta , newline, newline. ['sinal de dólar' | 'Marcador de objeto'] myobject é igual a novos parênteses de abertura e fechamento do MyClass, ponto e vírgula, nova linha. ['sinal de dólar' | 'Marcador de objeto'] barra de seta do myobject abrir-fechar parênteses, ponto e vírgula, nova linha. Recuo reverso, tag estreita do PHP. "

Onde você vê ['cifrão' | 'Object-marker'], basta escolher o que você costuma falar por '$', eu alterno entre os dois com frequência, depende apenas da minha audiência.

Portanto, para resumir, no PHP, -> refere-se a um membro de um objeto, seja uma variável, outro objeto ou um método.

user253780
fonte
1

O desenvolvedor PHP sênior onde trabalho diz "flecha".

$A->B;

Quando ele está me dizendo para digitar o texto acima, ele diz: "Dólar A, seta B" ou por

$A->B();

"Dólar A seta B parens."

Marcus Adams
fonte
1

Eu faria assim:

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

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

No meu livro ( PHP Master, de Lorna Mitchell), é chamado de operador de objeto .

Julian
fonte
1

O japonês tem uma partícula conveniente para isso, "não" (の). É a partícula possessiva, que significa aproximadamente "relacionada ao termo anterior".

"Fred の texugo" significa "texugo de Fred".

O que é um longo caminho para dizer que, pelo menos mentalmente, e também entre aqueles que entendem japonês, eu tendem a diferenciá-los lendo-os como:

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

Mas ler ambos como um "s" possessivo também funciona, para falantes não japoneses. Você também pode girá-los e usar "of", então "D of C" ... mas isso é meio estranho e difícil de fazer, você está lendo rapidamente, porque isso interrompe seu fluxo linear.

Se eu estivesse ditando, talvez, ao codificar em pares e sugerir o que digitar, me referiria aos caracteres específicos como "traço maior que a flecha" e "dois-pontos" (se eu conhecer a pessoa com quem estou falando to é um PHPophile, eu poderia chamar isso de "paamayim nekudotayim dois-pontos-duplos" pela primeira vez, em parte porque é uma piada interessante, em parte para impedir que eles "me corrijam").

Dewi Morgan
fonte
0

Objeto. Então $a->$b->$cseria 'Um objeto B objeto c'.

Mbrevda
fonte
0

-> é o operador de propriedade usado para PHP no modo orientado a objetos.

Jordan Hudgens
fonte
0

user187291 respondeu à pergunta não subjetiva, quanto à subjetiva, digo "sub". Por exemplo, eu pronunciaria $x->ycomo "x sub y" - "sub", neste contexto, é a abreviação de "subscrito". Isso é mais apropriado para notação de matriz; $x['y']Eu também pronunciei "x sub y". Normalmente, ao ler o código em voz alta, estou usando minhas palavras para identificar uma linha que o outro desenvolvedor possa ver, de modo que a ambiguidade ainda não se tornou um problema. Acredito que a causa é que vejo estruturas / objetos e matrizes como "coleções" e seus elementos são subscritos como em notação matemática.

Iiridayn
fonte