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?


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".


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 .


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 ("::").


10
O Paamayah, o que? jk
— ValleyDigital

1

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"


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 ()".


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"


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.


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".


4
$a->b 

Eu chamo como "param b de $ a".

$a->b()

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


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.


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."


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 .


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").


0

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



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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.