"->" PHP operatörü nedir ve kodu yüksek sesle okurken bunu nasıl söylersiniz? [kapalı]


127

->PHP'de bulunan bu ok görünümlü operatöre ne diyorsunuz ?

Bu, bir eksi işareti, kısa çizgi veya kısa çizgidir ve ardından büyüktür işareti (veya sağ köşeli çift ayraç) gelir.

Kodu yüksek sesle okurken nasıl telaffuz edersiniz?


12
Bu soru neden bu soruyu yanıtlamak için bu soruya bağlanan bir sorunun kopyası olarak kapatıldı?
Ben

1
C ++ 'da "->" operatörü "göstericinin üyesi" olarak adlandırılır, ancak PHP "->" operatörü "" operatörüne daha yakındır. C ++ 'da işleçtir ve buna "nesnenin üyesi" denir.
user34660

Yanıtlar:


134

Resmi adı "nesne operatörü" - T_OBJECT_OPERATOR . Ben buna "ok" diyorum.


9
Sözcüksel belirtecin her zaman belirtecin genellikle başvurulduğu şey olmadığını unutmayın. Örneğin, :: 'nin adı "kapsam çözümleme operatörü" dür ancak bu makalede olarak listelenmiştir T_DOUBLE_COLON. Biraz daha oy
aldığımda + 1'leyeceğim

1
"Ve B uygulayıp maaşı iade ettikten sonra, A oku C" okursanız kulağa garip geliyor. Daha çok A'nın C'yi ifade etmesi gibi olacak
Ben

66
Billy haklı, çoğu insan :: a T_PAAMAYIM_NEKUDOTAYIM'i gündelik sohbette
Alan Storm

3
Bunun $a->do()"A'nın yöntemi Do" ve $a->thing"A'nın özelliği Şey" olduğunu söyleyebilirim, yani görecelidir.
Martin Lyne

1
Btw, T_PAAMAYIM_NEKUDOTAYIMİbranice'de tam olarak "çift iki nokta" anlamına gelir.
Neta

59

Ben buna " dart " diyorum ; de olduğu gibi$Foo->bar() : "Foo dart çubuğu"

Birçok dilde olduğu gibi "nokta" kullanıldığından Foo.bar(); tek heceli bir kelimenin kullanılmasını istedim. "Ok" çok uzun soluklu! ;)

PHP kullandığından beri . birleştirme için "nokta" (neden?) Güvenli bir şekilde "nokta" diyemem - bu kafa karıştırabilir.

Bir süre önce bir iş arkadaşımızla tartışırken, rahat bir şekilde akması için "nokta" ya yeterince benzer, ancak bir araya getirilmiş "nokta" ile karıştırılmayacak kadar (en azından söylediğimizde) yeterince farklı bir kelime olarak "dart" üzerine karar verdik. .


1
Bunu sevdim! +1 sizin için. Sanırım yüksek sesle konuşurken "nokta" yerine "ok" atma tehlikesi var. Çok kötü "ok" muhtemelen çok daha sağlamdır.
Phil Perry

Güzel, kafamda en çok kullanacağım cevap bu. Cevabınız için iyi bir gerekçe.
Liam

Bunu kesinlikle hatırlayacağım.
Chev

Ok
dersen

39

PHP kodunu yüksek sesle okurken, "->" operatörünü telaffuz etmiyorum. İçin $db->prepare($query);çoğunlukla söylemek "Db [kısa duraklama] sorgusu hazırlar." Sanırım bunu normal bir cümlede virgül gibi konuşuyorum.

Aynı şey Paamayim Nekudotayim ("::") için de geçerli.


10
Paamayah whata? jk
ValleyDigital


1
Paamayim Nekudotayim ("::") "CoCo" 'yu ​​"kolon" kelimesinin kısaltması olarak çağırmayı seviyorum
Umbrella

14

Kodu kendi kendime okurken, bunu bir "sahiplenici şey" olarak düşünüyorum.

Örneğin:

x->value = y->value

"x'in değeri y'nin değerine eşittir" şeklinde okunur


9

Çoğu zaman, @ Tor Valamo'nun yönteminde ("A'nın B yöntemi" veya "A'nın B yöntemi") bazı varyasyonlar kullanıyorum, ancak bazen "nokta" diyorum. Örneğin, "A noktasını B () arayın".


5
Ben her zaman "a nokta b" diyorum çünkü hemen hemen her dilde böyle. PHP ve PHP olmayan geliştiriciler beni her zaman anlıyor gibi görünüyor.
Gareth

1
Evet, diğer birçok dilde nokta operatörüyle aynı şeyi yaptığı için "nokta" ya geri dönüyorum. O zaman soru ->, gerçek nokta operatöründen farklı işlevlere sahip olduğu C / C ++ 'da ne ararsınız?
meagar

4

Mülk operatörü.

Okurken $a->b()veya $a->byüksek sesle okurken sadece "$ a objede b ara" veya "$ a'dan / in / dan b al" derim


1
@Tor, sanırım "Metot operatörü" de.
Marcus Adams

@Marcus Adams - Pek değil, metotları görmek sadece çoğu dilde işlev olan özelliklerdir. Yalnız PHP'de büyük bir ayrım var, ancak ben yine de bir özellik diyebilirim.
Tor Valamo

4

Ben şahsen kodumu sözlü olarak ifade ederken ayrıntılı olmayı seviyorum.

Örneğin:

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

şöyle okurdu:

foo nesnesinin bar özelliğini echo (/ print).

Ayrıntılı ve daha fazla zaman alıyor, ancak kodumu sözlü olarak ifade etmem için bir neden olup olmadığını anlıyorum, o zaman muhtemelen tam olarak ne ilettiğime dair net olmam gerekir.


4

Cobol'a geri dönerek, "A'da 5'ten b'ye hareket et" diyeceğiniz yer. Günümüzde çoğu dil, şeyleri diğer yönde nitelendiriyor.

Yine $a->b();de "B'yi a'da ara" olarak okurdum .


4
$a->b 

Ben "a'nın b parametresi" diyorum.

$a->b()

"$ A'nın b işlevi" olarak adlandırıyorum.


3

Tek ok, PHP OOP için anlamı olarak sözlü olarak kolayca anılabilir: Üye. Yani, $a->varsizin için "Nesne a'nın üye var" diyeceksiniz.

Kodu yüksek sesle okurken, ileriyi okumak (ileriye dönük referans, üzgünüm) ve gerçekte neye atıfta bulunduğunuzu bilmek yardımcı olur. Örneğin, aşağıdaki kod parçasına sahip olalım:

<?php
  Class MyClass {
    $foo = 0;

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

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

Öyleyse, bu kod bloğunu bir kod gösterimi olarak yüksek sesle okuyacak olsaydım, şunu derdim:

"MyClass" sınıfını tanımla, açık küme ayracı. Değişken "foo" sıfıra eşittir, sonlandırma satırı. Genel işlev 'bar' aç-kapa parantezlerini, küme ayracı tanımla. 'This' nesnesinin üye değişkenini 'foo' döndür, son satırı . Kapa ayraç, yakın ayraç. Değişken nesne olarak 'MyClass' (bağımsız değişken yok) örneğini oluşturun, satırı sonlandırın. 'Nesnem' nesnesinin üye yöntemini 'bar'ı çağırın, son satırı. "

Ancak, kodu diğer öğrencilerin veya programcıların görsel olmadan kopyalaması için yüksek sesle okuyor olsaydım, o zaman derdim:

"PHP open tag (full), newline, indent, Class MyClass open-brace, newline. Indent, ['dolar-sign' | 'Object-marker'] foo equals 0, noktalı virgül, yeni satır, yeni satır. Public function bar open- kapat parantezler, açık parantez, yeni satır. Girinti, döndür ['dolar işareti' | 'Nesne işaretçisi'] bu ok foo, noktalı virgül, yeni satır. Ters girinti, küme ayracı, yeni satır, ters girinti, küme ayracı , yeni satır, yeni satır. ['dolar işareti' | 'Nesne işaretçisi'] myobject eşittir yeni Sınıfım aç-kapa parantezleri, noktalı virgül, yeni satır. ['dolar işareti' | 'Nesne işaretçisi'] myobject ok çubuğu açma-kapama parantezler, noktalı virgül, yeni satır. Ters girinti, PHP kapatma etiketi. "

Gördüğünüz yerde ['dolar işareti' | 'Nesne işaretleyici'], sadece '$' için hangisini tercih ederseniz seçin, ikisi arasında sık sık geçiş yapıyorum, sadece hedef kitleye bağlı.

Yani, özetlemek gerekirse, PHP'de -> bir nesnenin bir üyesini ifade eder, ister değişken, ister başka bir nesne veya bir yöntem olsun.


1

Çalıştığım kıdemli PHP geliştiricisi "ok" diyor.

$A->B;

Yukarıdakini yazmamı söylediğinde, "Dolar A ok B" diyecek veya

$A->B();

"Dolar A ok B parenleri."


1

Bunu şöyle yapardım:

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

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

Kitabımda ( Lorna Mitchell tarafından yazılan PHP Master ) buna nesne operatörü deniyor .


1

Japoncada bunun için uygun bir parçacık var, "hayır" (の). Bu, kabaca "önceki terimle ilişkili" anlamına gelen iyelik parçacığıdır.

"Fred の porsuk", "Fred'in porsuğu" anlamına gelir.

Bu, en azından zihinsel olarak ve Japoncayı anlayanlar arasında onları şu şekilde okuyarak ayırt etme eğiliminde olduğumu söylemenin uzun bir yoludur:

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

Ancak her ikisini de iyelik "s" olarak okumak Japonca olmayanlar için de işe yarar. Ayrıca onları çevirebilir ve "of" kullanabilirsiniz, yani "D of C" ... ama bu biraz garip ve bunu yapmak zordur, çünkü lineer akışınızı bozar.

Yine de dikte ediyor olsaydım, belki eşli kodlama yaparken ve ne yazmam gerektiğini önerirken, belirli karakterlere "oktan büyük tire" ve "çift iki nokta üst üste" (eğer konuştuğum kişiyi tanıyorsam) bir PHPofil, buna ilk seferinde "paamayim nekudotayim çift kolon" diyebilirim, kısmen havalı bir şaka olduğu için, kısmen beni "düzeltmelerini" önlemek için).


0

Nesne. Öyleyse $a->$b->$c, 'A nesnesi B nesnesi c' olacaktır.



0

user187291 öznel olmayan soruyu yanıtladı, öznel olan soruyu ise "alt" diyorum. Örneğin, $x->ybu bağlamda "x alt y" - "alt" olarak "alt simge" nin kısaltması olarak telaffuz ederim . Bu, dizi gösterimi için daha uygundur; $x['y']Ayrıca "x sub y" de telaffuz ediyorum. Tipik olarak, kodu yüksek sesle okurken, diğer geliştiricinin görebileceği bir satırı belirlemek için kelimelerimi kullanıyorum, bu nedenle belirsizlik henüz bir sorun haline gelmemiştir. Bunun nedeninin yapıları / nesneleri ve dizileri "koleksiyonlar" olarak görmem ve bunların öğelerinin matematiksel gösterimde olduğu gibi alt simge olması olduğuna inanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.