「->」PHPオペレーターは何と呼ばれ、コードを大声で読むときにどのように言うのですか?[閉まっている]


127

->PHPにあるこの矢印のような演算子を何と呼びますか?

マイナス記号、ダッシュ、またはハイフンの後に大なり記号(または右山形)が続きます。

コードを大声で読むときに、どのように発音しますか?


12
この質問に回答するためにこの質問にリンクする質問の複製として、この質問が閉じられたのはなぜですか?
ベン

1
C ++では、「->」演算子は「メンバーのポインター」と呼ばれますが、PHPの「->」演算子は実際には「。」に近いです。C ++の演算子であり、これは「オブジェクトのメンバー」と呼ばれます。
user34660 16

回答:


134

正式名称は「オブジェクト演算子」-T_OBJECT_OPERATORです。それを「矢印」と呼びます。


9
字句トークンは常にそのトークンが通常参照されるものではないことに注意してください。たとえば、::の名前は「スコープ解決演算子」ですが、その記事ではとしてリストされていT_DOUBLE_COLONます。投票数が増えると、+ 1します:)
ビリーオニール、

1
さて、「そしてBが実行して給与を返した後、A矢印C」を読んだ場合、奇妙に聞こえます。AはC.を参照する多くのようにそれはなるだろう
ベン

66
ビリーの言う通り、ほとんどの人は::をカジュアルな会話でT_PAAMAYIM_NEKUDOTAYIMと呼んでいます
Alan Storm

3
以下のように私はそれを言うと思います$a->do()「Aのメソッドドゥ」で、$a->thingそれは相対的だ、「Aのプロパティシング」です。
マーティン・ライン2012年

1
ところで、T_PAAMAYIM_NEKUDOTAYIMヘブライ語では「ダブルコロン」を正確に意味します。
Neta

59

私はそれを「ダーツ」と呼びます。のように$Foo->bar(): "フーダーツバー"

多くの言語は "ドット"を使用しているので、Foo.bar();私は1音節の単語を使用したかったのです。「矢印」は長すぎる!;)

PHPは.連結に「ドット」を使用するため(なぜですか?)「ドット」と安全に言うことはできません-混乱する可能性があります。

しばらく前に同僚と話し合ったとき、「ダーツ」は「ドット」と同じくらい快適に流れるように似ているが、少なくとも「ドット」と間違わないように十分に区別できる単語として決定しました。 。


1
私はすきです!+1してください。大声で話すときに「ダーツ」を「ドット」に変える危険性があると思います。「矢」がひどすぎると、おそらくもっと根が下がるでしょう。
Phil Perry

いいですね、これが頭の中で最もよく使う答えです。あなたの答えの正当化。
リアム

確かに覚えておきます。
Chev

あなたが矢と言ったら私は理解します...ダーツに言及すると私は完全に失われます
Emeka Mbah

39

PHPコードを読み上げるとき、「->」演算子を発音しません。以下のために$db->prepare($query);、私はほとんどが言う「DB [短い休止]をクエリを準備します。」だから、私は通常の文章ではコンマのようにそれを話すと思います。

Paamayim Nekudotayim( "::")についても同様です。


10
パアマーヤって?jk
ValleyDigital 2013


1
私はPaamayim Nekudotayim( "::")を "CoCo"を "コロンコロン"の略語と呼びます
Umbrella

14

コードを自分で読んだとき、私はそれを「所有物」のように思います。

例えば:

x->value = y->value

「xの値はyの値と等しい」と表示されます


9

ほとんどの場合、@ Tor Valamoの方法(「AのB方法」または「AのB方法」)のバリエーションを使用しますが、「ドット」と言うこともあります。例:「AドットB()を呼び出す」。


5
私はいつも「ドットb」と言います。それが、他のほとんどすべての言語でそうであるからです。PHP開発者と非PHP開発者は常に私を理解しているようです。
Gareth

1
そうです、他のほとんどの言語のドット演算子と同じことを行うので、「ドット」に戻ります。問題は->、実際のドット演算子とは異なる機能を持つC / C ++で何を呼び出しますか?
貧弱

4

プロパティ演算子。

読ん$a->b()だり$a->b大声で言ったりするときは、「$ a objでbを呼び出す」または「$ aから/の/でbを取得」と言うだけです。


1
@Tor、おそらく「メソッド演算子」も。
マーカスアダムス

@マーカス・アダムス-ほんとうに、メソッドは単なる言語であり、ほとんどの言語で関数になっているプロパティであると考えています。PHPだけでも、大きな違いがありますが、それでもプロパティと呼びます。
Tor Valamo

4

私は個人的にコードを口頭で表現するのが冗長になりたいです。

例えば:

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

そのように読むでしょう:

echo(/ print)オブジェクトfooのbarプロパティ。

冗長で時間がかかりますが、コードを口頭で表現する理由がある場合は、正確に何を通信しているのかを明確にする必要があります。


トマシュ、私を失ってしまったようです。:/ どういう意味ですか?
クレイジ

4

Cobolの「イン」に戻って「5をbに移動」と言います。今日のほとんどの言語は、物事を別の方向に限定しています。

しかし、私はまだ$a->b();「bをaに呼び出す」と読みます。


4
$a->b 

「$ aのparam b」と呼んでいます。

$a->b()

「$ aの関数b」と呼んでいます。


3

単一の矢印は、PHP OOP:メンバーにとって意味するものとして、口頭で簡単に参照できます。つまり、$a->var「オブジェクトaのメンバー変数」と言うことになります。

コードを声に出して読むときは、先読み(先読み参照、申し訳ありません)、実際に何を参照しているのかを知っていると役立ちます。たとえば、次のコードを見てみましょう。

<?php
  Class MyClass {
    $foo = 0;

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

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

したがって、このコードブロックをコードのデモンストレーションとして読み上げると、次のようになります。

"クラス 'MyClass'の定義、open-brace。変数 'foo'はゼロに等しい、行を終了します。パブリック関数 'bar'の開閉括弧、open-braceを定義します。オブジェクト 'this'のメンバー変数 'foo'を返し、行を終了します。Close-brace、close-brace。「MyClass」の新しいインスタンス(引数なし)を変数オブジェクト「myobject」としてインスタンス化し、行を終了します。オブジェクト「myobject」のメンバーメソッド「bar」を呼び出し、行を終了します。

ただし、他の学生やプログラマーがビジュアルなしでコピーできるようにコードを読み上げている場合は、次のように言います。

"PHPオープンタグ(フル)、改行、インデント、クラスMyClass open-brace、newline。インデント、['dollar-sign' | 'Object-marker'] fooは0、セミコロン、改行、改行に等しい。パブリック関数バーオープン-閉じ括弧、開き括弧、改行。インデント、戻り値['dollar-sign' | 'Object-marker'] this arrow foo、semicolon、newline。reverse-indent、close-brace、newline、reverse-indent、close-brace 、newline、newline。['dollar-sign' | 'Object-marker'] myobject equals new MyClass open-close括弧、セミコロン、改行。['dollar-sign' | 'Object-marker'] myobject arrow bar open-close括弧、セミコロン、改行。逆インデント、PHP終了タグ。」

あなたが見るところ['ドル記号' | 'Object-marker']、 '$'について話す傾向のある方を選択するだけです。私は2つを頻繁に切り替えます。聴衆によって異なります。

つまり、PHPでは、変数、別のオブジェクト、またはメソッドのいずれであっても、->はオブジェクトのメンバーを指します。


1

私が働いているシニアPHP開発者は「矢印」と言っています。

$A->B;

上記を入力するように指示すると、「ドルA矢印B」または

$A->B();

「ドルAアローB括弧。」


1

私はそれをこのようにします:

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

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

私の本(Lorna MitchellによるPHPマスター)では、オブジェクトオペレーターと呼ばれています


1

これには日本語には「いいえ」(の)という便利な助詞があります。所有格であり、大まかに「前項に関連する」という意味です。

「フレッドのアナグマ」とは「フレッドのアナグマ」を意味します。

これは、少なくとも精神的に、そして日本語を理解している人々の間では、次のように読んで差別化する傾向があるという長い道のりです。

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

しかし、日本語を話さない人にとっては、両方を所有格として読むこともできます。また、それらを反転して「of」、つまり「D of C」を使用することもできます...しかし、それは少し厄介であり、線形フローを壊すため、迅速に読み取ることは困難です。

しかし、私が口述していた場合、おそらくペアコーディングやタイプを提案するとき、特定の文字を「ダッシュより大の矢印」と「ダブルコロン」と呼びます(話している人がわかっている場合) toはPHPの愛好家で、「paamayim nekudotayim double-colon」と初めて呼ぶかもしれませんが、これは冗談であり、一部には、私を「修正」できないようにするためです)。


0

オブジェクト。したがって$a->$b->$c、「AオブジェクトBオブジェクトc」になります。



0

user187291は主観的ではない質問については主観的でない質問に答えました。たとえば、私は$x->y"x sub y" と発音します-この文脈での "sub"は "subscript"の略です。これは配列表記に適しています。$x['y']「x sub y」とも発音します。通常、コードを大声で読むときは、他の開発者が見ることができる行を識別するために自分の言葉を使用しているため、あいまいさはまだ問題になりません。原因は、構造体/オブジェクトと配列を「コレクション」と見なし、その要素に数学的表記のように添え字が付けられているためだと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.