Dlaczego to pytanie zostało zamknięte jako duplikat pytania, które zawiera link do tego pytania, aby na nie odpowiedzieć?
Ben
1
W C ++ operator "->" nazywany jest "członkiem wskaźnika", ale operator PHP "->" jest w rzeczywistości bliżej "." operator w C ++ i nazywany jest „członkiem obiektu”.
user34660
Odpowiedzi:
134
Oficjalna nazwa to „operator obiektu” - T_OBJECT_OPERATOR . Nazywam to „strzałą”.
Zwróć uwagę, że token leksykalny nie zawsze jest tym, do czego zwykle się odnosi. Na przykład nazwa :: jest „operatorem rozpoznawania zakresu”, ale jest wymieniona w tym artykule jako T_DOUBLE_COLON. Dam Ci +1, gdy zdobędę więcej głosów :)
Billy ONeal
1
Cóż, brzmi dziwnie, jeśli przeczytasz „A po tym, jak B wykonuje i zwraca pensję, strzałka A C”. Będzie bardziej tak, jak A odnosi się do C.
Ben
66
Billy ma rację, większość ludzi dzwoni do: a T_PAAMAYIM_NEKUDOTAYIM w swobodnej rozmowie
Alan Storm
3
Powiedziałbym, że $a->do()jest to „metoda A do” i $a->thing„rzecz właściwości A”, więc jest względna.
Martin Lyne,
1
Przy okazji, T_PAAMAYIM_NEKUDOTAYIMdokładnie oznacza „podwójny dwukropek” po hebrajsku.
Neta
59
Nazywam to " strzałką ”; jak w $Foo->bar(): „Foo dart bar”
Ponieważ wiele języków używa „kropki”, tak jak w przypadku Foo.bar();, chciałem użyć słowa jednosylabowego. „Strzałka” jest po prostu zbyt rozwlekła! ;)
Ponieważ PHP używa . „kropki” do konkatenacji (dlaczego?), Nie mogę bezpiecznie powiedzieć „kropki” - może to być mylące.
Dyskutując ze współpracownikiem jakiś czas temu, zdecydowaliśmy się na „strzałkę” jako słowo na tyle podobne do „kropki”, aby płynąć komfortowo, ale wystarczająco wyraźne (przynajmniej jeśli to powiemy), aby nie było mylone z łączącą „kropką” .
Lubię to! +1 dla Ciebie. Przypuszczam, że podczas głośnego mówienia istnieje niebezpieczeństwo, że „strzałka” zamieni się w „kropkę”. Szkoda, że „strzała” jest prawdopodobnie znacznie bardziej zakorzeniona.
Phil Perry,
Fajnie, to jest odpowiedź, której najprawdopodobniej użyję w mojej głowie. Dobre uzasadnienie Twojej odpowiedzi.
Liam
Na pewno to zapamiętam.
Chev
Rozumiem, jeśli powiesz strzałkę ... Całkowicie się zgubię, jeśli wspomnisz o dart
Emeka Mbah
39
Czytając na głos kod PHP, nie wymawiam operatora „->”. Na $db->prepare($query);I przede wszystkim powiedzieć „Db [krótka pauza] przygotować zapytania”. Więc myślę, że mówię to jak przecinek w zwykłym zdaniu.
Zawsze mówię „a kropka b”, ponieważ tak jest w prawie każdym innym języku. Programiści PHP i nie-PHP zawsze wydają się mnie rozumieć.
Gareth,
1
Tak, wracam do „kropki”, ponieważ robi to samo, co operator kropki w większości innych języków. Powstaje zatem pytanie, co wywołujesz ->w C / C ++, gdzie ma inną funkcjonalność niż rzeczywisty operator kropki?
meagar
4
Operator nieruchomości.
Podczas czytania $a->b()lub $a->bgłośno mówię po prostu „wezwij b na $ a obj” lub „pobierz b z / w / z $ a”
@Marcus Adams - Niezupełnie, biorąc pod uwagę, że metody to tylko właściwości, które są funkcjami w większości języków. Jednak w samym PHP istnieje duże rozróżnienie, ale nadal nazwałbym to właściwością.
Tor Valamo,
4
Osobiście lubię być rozwlekły w wyrażaniu swojego kodu werbalnie.
na przykład:
$foo =newFoo();
echo $foo->bar
brzmiałoby tak:
echo (/ print) właściwość bar obiektu foo.
Jest to rozwlekłe i bardziej czasochłonne, ale stwierdzam, że jeśli jest powód, dla którego chcę wyrazić swój kod werbalnie, prawdopodobnie muszę mieć jasność co do tego, co dokładnie przekazuję.
Pojedyncza strzałka może być łatwo określona werbalnie jako oznaczenie dla PHP OOP: Member. Więc dla$a->var powiedziałbyś "zmienna składowa obiektu a".
Czytając kod na głos, dobrze jest czytać z wyprzedzeniem (patrz wstecz, przepraszam) i wiedzieć, do czego właściwie odnosisz się. Na przykład, przygotujmy następujący fragment kodu:
Tak więc, gdybym miał przeczytać na głos ten blok kodu jako demonstrację kodu, powiedziałbym tak:
„Zdefiniuj klasę„ MyClass ”, otwarty nawias klamrowy. Zmienna„ foo ”równa się zero, zakończ linię. Zdefiniuj funkcję publiczną„ bar ”nawiasy otwierające i zamykające, nawiasy otwierające. Zwróć zmienną składową„ foo ”obiektu„ this ”, zakończ linię . Nawias zamykający, nawias zamykający. Utwórz instancję nowej instancji „MyClass” (bez argumentów) jako obiekt zmienny „myobject”, zakończ linię. Wywołaj metodę składową „bar” obiektu „myobject”, zakończ linię. "
Gdybym jednak czytał kod na głos, aby inni studenci lub programiści mogli go skopiować bez wizualizacji, powiedziałbym:
"Otwierający znacznik PHP (pełny), znak nowej linii, wcięcie, klasa otwartego nawiasu klamrowego MyClass, znak nowej linii. Wcięcie, ['znak dolara' | 'znacznik obiektu'] foo równa się 0, średnik, nowa linia, nowa linia. Public function bar open- nawiasy zamykające, nawias zamykający, znak nowej linii. Wcięcie, powrót ['znak dolara' | 'znacznik obiektu'] ta strzałka foo, średnik, nowa linia. Wcięcie odwrotne, nawias zamykający, nowa linia, wcięcie odwrotne, nawias zamykający , nowa linia, nowa linia. ['znak dolara' | 'znacznik obiektu'] mojobject równa się nowy MyClass otwierający-zamykający nawiasy, średnik, nowy wiersz. ['znak dolara' | 'znacznik obiektu'] pasek strzałki mojego obiektu otwórz-zamknij nawiasy, średnik, znak nowej linii. Odwróć wcięcie, znacznik zamykający PHP. "
Gdzie widzisz ['znak dolara' | „Object-marker”], po prostu wybierz to, co zwykle mówisz za „$”. Często przełączam się między nimi, w zależności od moich odbiorców.
Podsumowując, w PHP -> odnosi się do elementu członkowskiego obiektu, czy to zmiennej, innego obiektu czy metody.
//Instantiated object variable with the name mono call property name
$mono->name;//Instantiated object variable with the name mono call method ship
$mono->ship();
W mojej książce ( PHP Master autorstwa Lorny Mitchell) nazywa się to operatorem obiektu .
Japoński ma do tego dogodną cząsteczkę „nie” (の). Jest to cząstka dzierżawcza, oznaczająca z grubsza „odnoszącą się do poprzedniego terminu”.
„Fred の borsuk” oznacza „borsuk Freda”.
To długa droga do stwierdzenia, ż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 zaborczych „s” działa również dla osób nie mówiących po japońsku. Możesz je również odwrócić i użyć "of", więc "D of C" ... ale to trochę niezręczne i trudne do zrobienia, czytasz szybko, ponieważ przerywa twój liniowy przepływ.
Gdybym jednak dyktował, być może podczas kodowania parami i sugerowania, co wpisać, określiłbym konkretne znaki jako „myślnik większy niż strzałka” i „dwukropek” (jeśli znam osobę, z którą rozmawiam to jest PHPofilem, za pierwszym razem mógłbym nazwać to „paamayim nekudotayim podwójnym dwukropkiem”, częściowo dlatego, że jest to fajny żart, częściowo po to, aby uniemożliwić im „poprawianie” mnie).
user187291 odpowiedział na pytanie nie-subiektywne, a subiektywne, mówię „sub”. Na przykład wymówiłbym $x->yjako „x sub y” - „sub” w tym kontekście jest skrótem od „indeksu dolnego”. Jest to bardziej odpowiednie dla notacji tablicowej; $x['y']Wymawiam również „x sub y”. Zazwyczaj podczas głośnego czytania kodu używam słów, aby zidentyfikować linię, którą inny programista może zobaczyć, więc niejednoznaczność nie stała się jeszcze problemem. Uważam, że przyczyną jest to, że postrzegam struktury / obiekty i tablice jako „kolekcje”, a ich elementy są indeksowane, tak jak w notacji matematycznej.
Odpowiedzi:
Oficjalna nazwa to „operator obiektu” - T_OBJECT_OPERATOR . Nazywam to „strzałą”.
źródło
T_DOUBLE_COLON
. Dam Ci +1, gdy zdobędę więcej głosów :)$a->do()
jest to „metoda A do” i$a->thing
„rzecz właściwości A”, więc jest względna.T_PAAMAYIM_NEKUDOTAYIM
dokładnie oznacza „podwójny dwukropek” po hebrajsku.Nazywam to " strzałką ”; jak w
$Foo->bar()
: „Foo dart bar”Ponieważ wiele języków używa „kropki”, tak jak w przypadku
Foo.bar();
, chciałem użyć słowa jednosylabowego. „Strzałka” jest po prostu zbyt rozwlekła! ;)Ponieważ PHP używa
.
„kropki” do konkatenacji (dlaczego?), Nie mogę bezpiecznie powiedzieć „kropki” - może to być mylące.Dyskutując ze współpracownikiem jakiś czas temu, zdecydowaliśmy się na „strzałkę” jako słowo na tyle podobne do „kropki”, aby płynąć komfortowo, ale wystarczająco wyraźne (przynajmniej jeśli to powiemy), aby nie było mylone z łączącą „kropką” .
źródło
Czytając na głos kod PHP, nie wymawiam operatora „->”. Na
$db->prepare($query);
I przede wszystkim powiedzieć „Db [krótka pauza] przygotować zapytania”. Więc myślę, że mówię to jak przecinek w zwykłym zdaniu.To samo dotyczy Paamayim Nekudotayim („::”).
źródło
Czytając sobie kod, myślę o nim jak o „zaborczej rzeczy”.
Na przykład:
przeczytałoby „wartość x równa się wartości y”
źródło
Najczęściej używam wariacji na temat metody @Tor Valamo („metoda B z A” lub „metoda A's B”), ale czasami mówię „kropka”. Np. „Wywołaj A kropkę B ()”.
źródło
->
w C / C ++, gdzie ma inną funkcjonalność niż rzeczywisty operator kropki?Operator nieruchomości.
Podczas czytania
$a->b()
lub$a->b
głośno mówię po prostu „wezwij b na $ a obj” lub „pobierz b z / w / z $ a”źródło
Osobiście lubię być rozwlekły w wyrażaniu swojego kodu werbalnie.
na przykład:
brzmiałoby tak:
Jest to rozwlekłe i bardziej czasochłonne, ale stwierdzam, że jeśli jest powód, dla którego chcę wyrazić swój kod werbalnie, prawdopodobnie muszę mieć jasność co do tego, co dokładnie przekazuję.
źródło
Słysząc z powrotem do Cobola „in”, gdzie powiedziałbyś „Move 5 to b in a”. Większość dzisiejszych języków określa rzeczy w innym kierunku.
Jednak nadal czytałbym
$a->b();
jako „Zadzwoń do b in a”.źródło
Wzywam jako „param b z $ a”.
Wołam jako „funkcja b $ a”.
źródło
Pojedyncza strzałka może być łatwo określona werbalnie jako oznaczenie dla PHP OOP: Member. Więc dla
$a->var
powiedziałbyś "zmienna składowa obiektu a".Czytając kod na głos, dobrze jest czytać z wyprzedzeniem (patrz wstecz, przepraszam) i wiedzieć, do czego właściwie odnosisz się. Na przykład, przygotujmy następujący fragment kodu:
Tak więc, gdybym miał przeczytać na głos ten blok kodu jako demonstrację kodu, powiedziałbym tak:
Gdybym jednak czytał kod na głos, aby inni studenci lub programiści mogli go skopiować bez wizualizacji, powiedziałbym:
Gdzie widzisz ['znak dolara' | „Object-marker”], po prostu wybierz to, co zwykle mówisz za „$”. Często przełączam się między nimi, w zależności od moich odbiorców.
Podsumowując, w PHP -> odnosi się do elementu członkowskiego obiektu, czy to zmiennej, innego obiektu czy metody.
źródło
Starszy programista PHP, w którym pracuję, mówi „strzałka”.
Kiedy każe mi wpisać powyższe, powie: „Dolar A, strzałka B” lub za
„Parens dolara A, strzałka B”.
źródło
Zrobiłbym to tak:
W mojej książce ( PHP Master autorstwa Lorny Mitchell) nazywa się to operatorem obiektu .
źródło
Japoński ma do tego dogodną cząsteczkę „nie” (の). Jest to cząstka dzierżawcza, oznaczająca z grubsza „odnoszącą się do poprzedniego terminu”.
„Fred の borsuk” oznacza „borsuk Freda”.
To długa droga do stwierdzenia, ż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:
Ale czytanie obu jako zaborczych „s” działa również dla osób nie mówiących po japońsku. Możesz je również odwrócić i użyć "of", więc "D of C" ... ale to trochę niezręczne i trudne do zrobienia, czytasz szybko, ponieważ przerywa twój liniowy przepływ.
Gdybym jednak dyktował, być może podczas kodowania parami i sugerowania, co wpisać, określiłbym konkretne znaki jako „myślnik większy niż strzałka” i „dwukropek” (jeśli znam osobę, z którą rozmawiam to jest PHPofilem, za pierwszym razem mógłbym nazwać to „paamayim nekudotayim podwójnym dwukropkiem”, częściowo dlatego, że jest to fajny żart, częściowo po to, aby uniemożliwić im „poprawianie” mnie).
źródło
Obiekt. Więc
$a->$b->$c
byłoby „A przedmiotem B obiekt c”.źródło
->
jest operatorem właściwości używanym w PHP w trybie zorientowanym obiektowo.źródło
user187291 odpowiedział na pytanie nie-subiektywne, a subiektywne, mówię „sub”. Na przykład wymówiłbym
$x->y
jako „x sub y” - „sub” w tym kontekście jest skrótem od „indeksu dolnego”. Jest to bardziej odpowiednie dla notacji tablicowej;$x['y']
Wymawiam również „x sub y”. Zazwyczaj podczas głośnego czytania kodu używam słów, aby zidentyfikować linię, którą inny programista może zobaczyć, więc niejednoznaczność nie stała się jeszcze problemem. Uważam, że przyczyną jest to, że postrzegam struktury / obiekty i tablice jako „kolekcje”, a ich elementy są indeksowane, tak jak w notacji matematycznej.źródło