What is the “->” PHP operator called and how do you say it when reading code out loud?
在PHP中,这个看起来像箭头的
它可以是减号、破折号或连字符,后跟大于号(或右V形)。
当你大声读代码的时候怎么发音?
官方名称是"对象操作符"-t_对象操作符。我叫它"箭"。
我称之为"飞镖";如
由于许多语言使用"dot",就像在
因为php使用
前一段时间,我们和同事讨论过,我们决定用"dart"这个词来形容"dot"这个词,它可以让人感到舒服,但又足够清晰(至少在我们说的时候),不会被误认为是连在一起的"dot"。
当大声读PHP代码时,我不会发"->号运算符的音。对于
Paamayim Nekudotayim("::")也是如此。
当我自己阅读代码时,我认为它是一种"占有性的东西"。
例如:
1 | x->value = y->value |
将读取"x的值等于y的值"
通常,我在@tor valamo的方法("A的B方法"或"A的B方法")上使用一些变体,但有时我会说"点"。例如,"call a dot b()"。
1 | $a->b |
我叫"A的B参数"。
1 | $a->b() |
我称之为"A的B函数"。
属性运算符。
当我大声读
回到cobol的"in",在这里你会说"在a中移动5到b"。现在大多数语言都将事物限定在另一个方向。
但我还是会把
单箭头可以很容易地被口头引用为php oop:member的含义。因此,对于
当大声阅读代码时,它有助于提前阅读(lookahead引用,抱歉),并知道您实际上在引用什么。例如,让我们有以下代码位:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php Class MyClass { $foo = 0; public function bar() { return $this->foo; } } $myobject = new MyClass(); $myobject->bar(); ?> |
所以,如果我大声朗读这个代码块作为代码的演示,我会这样说:
"Define Class 'MyClass', open-brace. Variable 'foo' equals zero, terminate line. Define public function 'bar' open-close parentheses, open-brace. Return member variable 'foo' of object 'this', terminate line. Close-brace, close-brace. Instantiate new instance of 'MyClass' (no arguments) as variable object 'myobject', terminate line. Call member method 'bar' of object 'myobject', terminate line."
但是,如果我大声朗读代码,让其他学生或程序员在没有视觉效果的情况下进行复制,那么我会说:
"PHP open tag (full), newline, indent, Class MyClass open-brace, newline. Indent, ['dollar-sign' | 'Object-marker'] foo equals 0, semicolon, newline, newline. public function bar open-close parentheses, open-brace, newline. Indent, return ['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 parentheses, semicolon, newline. ['dollar-sign' | 'Object-marker'] myobject arrow bar open-close parentheses, semicolon, newline. Reverse-indent, PHP close tag."
当你看到"‘美元符号’’‘目标标记’’"时,只需选择你想说的任何一个,我经常在两者之间切换,这取决于我的观众。
所以,总而言之,在PHP中,->指的是对象的一个成员,无论是变量、另一个对象还是方法。
我个人喜欢在口头表达我的代码时冗长。
例如。:
1 2 | $foo = new Foo(); echo $foo->bar |
会这样读:
echo(/print) the bar property of object foo.
这是一个冗长而费时的过程,但是我发现如果我有理由口头表达我的代码,那么我可能需要清楚地知道我在传达什么。
我会这样做:
1 2 3 4 5 | //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 master)中,它被称为对象操作符。
我工作的高级PHP开发人员说"arrow"。
1 | $A->B; |
当他告诉我打上面的字时,他会说,"美元A箭头B"或
1 | $A->B(); |
"一美元一箭头二元。"
日本人对此有一个方便的粒子,"不"()。它是占有性粒子,大致意思是"与前一项有关"。
"弗雷德獾"是指"弗雷德獾"。
这是一个很长的说法,至少在精神上,而且在那些懂日语的人中,我倾向于将他们区分为:
1 2 | $A->B(); //"Call $A's B." C::D(); //"Call C の D." |
但是,对于非日语使用者来说,把两者都当作所有格的"'s"也行。你也可以翻转它们,使用"of",所以"d of c"…但这有点尴尬,很难做到,因为它会破坏你的线性流动,所以你读得很快。
不过,如果我是在听写,也许是在编写配对代码和建议键入内容时,我会将特定的字符称为"破折号大于箭头"和"双冒号"(如果我知道与我交谈的人是phpophile,我可能会第一次称之为"paamayim nekudotayim double冒号",部分是因为这是一个很酷的笑话,部分是为了防止从"纠正"我)。
对象。因此,
用户187291已经回答了非主观问题,至于主观问题,我说"Sub"。例如,我将