Jak nazywa się Operator PHP "->" i jak to się mówi podczas czytania kodu na głos? [zamknięte]

Jak nazywa się ten operator szukający -> znaleziony w PHP?

Jest to znak minus, myślnik lub myślnik, po którym następuje znak większy niż (lub prawy szewron).

Jak to wymawiasz, czytając kod na głos?

 112
Author: Cerbrus, 2010-04-07

16 answers

Oficjalna nazwa to "operator obiektu" - T_OBJECT_OPERATOR . Nazywam to "strzałą".

 129
Author: user187291,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-24 03:03:04

Nazywam go " dart "; jak w $Foo->bar(): "Foo dart bar"

Ponieważ wiele języków używa "kropki" jak w Foo.bar(); chciałem użyć jednosylabowego słowa. / Align = "left" / ;)

Ponieważ PHP używa . "kropki" do konkatenacji (dlaczego?) Nie mogę bezpiecznie powiedzieć "kropka" - to może zmylić.

Dyskutując ze współpracownikiem jakiś czas temu, zdecydowaliśmy się na "dart" jako słowo na tyle podobne do "kropka", aby płynąć wygodnie, ale na tyle wyraźne (przynajmniej kiedy to mówimy), aby nie zostać pomylonym z konkatenująca "kropka".

 51
Author: Umbrella,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-21 09:45:36

Podczas czytania kodu PHP na głos, nie wymawiam operatora" ->". Dla $db->prepare($query); najczęściej mówię " Db [krótka pauza] Przygotuj zapytanie."Więc chyba mówię to jak przecinek w zwykłym zdaniu.

To samo dotyczy Paamayim Nekudotayim ("::").

 39
Author: selfawaresoup,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-21 09:43:23

Kiedy czytam sobie kod, myślę o nim jak o "rzeczy zaborczej".

Na przykład:

x->value = y->value

Odczytuje "wartość x równa się wartości y"

 14
Author: Dan Mantyla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-07 01:24:46

Najczęściej używam wariacji na temat metody @Tor Valamo ("metoda B A "lub" metoda A B"), ale czasami mówię "kropka". Np. " call a dot B ()".

 9
Author: sprugman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-06 20:54:08

Operator Nieruchomości.

Podczas czytania $a->b() LUB $a->b po prostu mówię "wywołaj b na $a obj" lub "get B from/in / of $a"

 4
Author: Tor Valamo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-06 20:47:03

Wracając do COBOLu 'in', gdzie można powiedzieć "Przesuń 5 do b w a". większość języków dzisiaj kwalifikuje rzeczy w przeciwnym kierunku.

Jednak nadal czytałbym $a->b(); jako "Call B in a".

 4
Author: Don,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-24 02:57:11
$a->b 

Nazywam "param B z $a".

$a->b()

Wywołuję jako "funkcja b $a".

 4
Author: ganu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-24 03:01:24

Osobiście lubię wyrażać swój kod werbalnie.

Np.:

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

Czyta się tak:

Echo (/print) właściwość bar obiektu foo.

Jest to gadatliwe i bardziej czasochłonne, ale uważam, że jeśli istnieje powód, dla którego mam wyrażać mój kod werbalnie, to prawdopodobnie muszę być jasne, co dokładnie komunikuję.

 3
Author: Craige,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-21 23:41:30

Pojedyncza strzałka może być łatwo określana werbalnie jako co oznacza dla PHP OOP: Member. Tak więc dla $a->var można powiedzieć "obiekt A' S member var".

Podczas czytania kodu na głos, pomaga czytać z wyprzedzeniem (lookahead reference, sorry) i wiedzieć, do czego właściwie się odnosisz. Na przykład, miejmy następujący bit kodu:

<?php
  Class MyClass {
    $foo = 0;

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

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

Więc, gdybym miał czytać na głos ten blok kodu jako demonstrację kodu, powiedziałbym tak:

"Define Class 'MyClass', Otwarta klamra. Zmienna 'foo' równa się zero, Zakończ linię. Define public function ' bar ' open-close nawiasy, open-brace. Zwraca zmienną składową ' foo 'obiektu ' this', Zakończ linię. Zacisk, zacisk. Tworzy instancję nowej instancji 'MyClass' (bez argumentów) jako obiekt zmiennej 'myobject', Zakończ linię. Wywołanie metody członka 'bar' obiektu 'myobject', Zakończ linię."

Jednakże, gdybym czytał kod na głos dla innych uczniów lub programistów do kopiowania bez wizualizacji, to Powiedziałbym:

" PHP open tag (full), newline, indent, Class MyClass open-brace, newline. Indent, ['dollar-sign' | 'Object-marker'] foo równa się 0, średnik, nowa linia, nowa linia. public function bar open-close nawiasy, open-brace, nowy wiersz. Indent, return ['dollar-sign | / 'Object-marker'] this arrow foo, semicolon, newline. Odwrotne wcięcie, Zamknij nawias, nowa linia, odwrotne wcięcie, Zamknij nawias, nowa linia, nowa linia. ['dollar-sign | / 'Object-marker' ] myobject równa się new MyClass open-close nawiasy, średnik, nowy wiersz. ['dollar-sign | / 'Object-marker'] myobject arrow bar open-close nawiasy, średnik, nowy wiersz. Reverse-indent, PHP Zamknij tag."

Gdzie widzisz ['dollar-sign | / 'Object-marker'], po prostu wybierz to, co zwykle mówisz za'$', przełączam się między nimi często, zależy tylko od moich odbiorców.

Podsumowując, w PHP, - > odnosi się do elementu obiektu, czy to zmiennej, innego obiektu, czy metody.

 2
Author: user253780,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-21 09:50:57

Starszy programista PHP, w którym pracuję, mówi "arrow".

$A->B;

Kiedy każe mi wpisać powyższe, powie: "Dolar a strzałka B" lub dla

$A->B();

"Dolar a arrow B parens."

 1
Author: Marcus Adams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-06 21:07:37

Zrobiłbym to tak:

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

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

In my book (PHP Master przez Lornę Mitchell) nazywa się operatorem obiektu .

 1
Author: Julian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-21 09:47:49

Obiekt. Więc $a->$b->$c będzie 'obiektem B obiekt c'.

 0
Author: Mbrevda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-24 02:56:40

-> jest operatorem właściwości używanym dla PHP w trybie zorientowanym obiektowo.

 0
Author: Jordan Hudgens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-21 09:46:42

User187291 odpowiedział na nie subiektywne pytanie, co do subiektywnego, mówię "sub". Na przykład, wymawiałbym $x->y jako "X sub y" - " sub "w tym kontekście jest skrótem od "indeks dolny". Jest to bardziej odpowiednie dla notacji tablicy; $x['y'] wymawiam również "x sub y". Zazwyczaj podczas czytania kodu na głos, używam moich słów, aby zidentyfikować linię, którą widzi inny programista, więc niejednoznaczność jeszcze nie stała się problemem. Wierzę, że przyczyną jest to, że przeglądam struktury / obiekty i tablice jako "zbiory", a ich elementy są zapisywane jak w notacji matematycznej.

 0
Author: Iiridayn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:11

Japoński ma do tego wygodną cząstkę, " nie " (の). Jest to cząstka dzierżawcza, oznaczająca mniej więcej "odnosząca się do terminu poprzedzającego".

"Fred' s borsuk "oznacza" Fred 's borsuk".

Co jest długą drogą mówienia, że przynajmniej mentalnie, a także wśród tych, którzy rozumieją Japoński, mam tendencję do rozróżniania ich, czytając je jako: {]}

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

Ale czytanie obu jako dzierżawcze "'s"również działa, dla osób nie-Japońskich. Można je również odwrócić i użyć "of", więc " D C"... ale to trochę niezręczne i trudno to zrobić, czytasz szybko, ponieważ łamie Twój liniowy przepływ.

Gdybym dyktował, być może, gdy kodowanie par i sugerowanie, co wpisać, odniosłbym się do konkretnych znaków jako " dash-greater-than arrow "i" double-colon "(jeśli Wiem, że osoba, z którą rozmawiam, jest Phpofilem, mógłbym nazwać to "paamayim nekudotayim double-colon" za pierwszym razem, częściowo dlatego, że jest to fajny żart, częściowo, aby zapobiec ich "korygowaniu"." ja).

 0
Author: Dewi Morgan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-23 19:20:59