Ответ 1
Официальное название - оператор объекта - T_OBJECT_OPERATOR. Я называю это "стрелкой".
Что вы называете этой стрелкой, которая ищет оператор ->
, найденный в PHP?
Это либо знак минус, тире, либо дефис, за которым следует знак больше (или правый шеврон).
Как вы произносите это при чтении кода вслух?
Официальное название - оператор объекта - T_OBJECT_OPERATOR. Я называю это "стрелкой".
Я называю это " dart"; как в $Foo->bar()
: "Foo dart bar"
Поскольку многие языки используют "точку", как в Foo.bar();
, мне нужно использовать односложное слово. "Стрела" слишком затянута!;)
Так как PHP использует .
"dot" для конкатенации (почему?), я не могу спокойно сказать "точка" - это может смутить.
Обсудив с коллегой некоторое время назад, мы решили "дрочить" как слово, достаточно близкое к "точке", чтобы течь комфортно, но достаточно отчетливо (по крайней мере, когда мы говорим), чтобы не ошибиться в конкатенации "точка".
При чтении PHP-кода вслух я не произношу оператора "- > ". Для $db->prepare($query);
я в основном говорю "Db [short pause] подготовить запрос". Поэтому я думаю, что я говорю это как запятую в обычном предложении.
То же самое относится к Paamayim Nekudotayim ( "::" ).
Когда я читаю код для себя, я считаю его "притяжательной".
Например:
x->value = y->value
будет читать "значение x равно значению y"
Чаще всего я использую некоторые вариации метода @Tor Valamo ( "метод B метода A" или "метод A B" ), но иногда я говорю "точка". Например. "Назовите точку B()".
Оператор свойств.
Когда вы читаете $a->b()
или $a->b
громко, я просто говорю "называть b на $a obj" или "get b из /in/of $a"
Возвращаясь к Cobol 'in', где вы сказали бы "Переместить 5 на b в a". Сегодня большинство языков квалифицируют вещи в другом направлении.
Но я все равно прочитал бы $a->b();
как "Вызов b в a".
$a->b
Я называю "param b of $a".
$a->b()
Я называю "функцией b из $a".
Мне лично нравится быть верным в выражении моего кода в устной форме.
например:.
$foo = new Foo();
echo $foo->bar
будет читать как таковой:
echo (/print) свойство bar объекта foo.
Это многословие и много времени, но я нахожу, что есть причина, по которой я буду выражать свой код в устной форме, тогда мне, вероятно, нужно четко указать, что я точно сообщаю.
Единственная стрелка может быть легко передана в устной форме как то, что она означает для PHP OOP: Member. Итак, для $a->var
вы бы сказали "Object a member var".
При чтении кода вслух он помогает читать вперед (справочная ссылка, извините) и знать, на что вы действительно можете ссылаться. Например, пусть имеет следующий бит кода:
<?php
Class MyClass {
$foo = 0;
public function bar() {
return $this->foo;
}
}
$myobject = new MyClass();
$myobject->bar();
?>
Итак, если бы я прочитал вслух этот блок кода как демонстрацию кода, я бы сказал следующее:
"Определить класс" MyClass ", open-brace. Переменная" foo "равна нулю, завершать строку. Определить открытые круглые скобки открытого доступа, открытые скобки. Возвращаемая переменная-член" foo "объекта 'this', завершать линию. Закрыть-скобка, close-brace. Создать новый экземпляр" MyClass "(без аргументов) в качестве объекта-объекта" myobject ", завершить строку. Метод вызова" bar "объекта" myobject ", завершение строки."
Однако, если бы я читал код вслух для других учеников или программистов для копирования без визуального, то я бы сказал:
"PHP open tag (полный), newline, indent, Class MyClass open-brace, newline. Отступ, ['dollar-sign' | 'Object-marker'] foo равно 0, точка с запятой, новая строка, новая строка. круглые скобки с открытыми-закрывающимися скобками, открытая скобка, новая строка.Отступ, возврат ['долларовый знак' | 'Объект-маркер'] эта стрелка foo, точка с запятой, новая строка. Обратный-отступ, close-brace, newline, reverse-indent, close-brace, newline, newline. ['dollar-sign' | 'Object-marker'] myobject равно новым скобкам MyClass с открытым концом, точкой с запятой, новой строкой. ['dollar-sign' | 'Object-marker'] myobject arrow bar круглые скобки с открытым тегом, точка с запятой, символ новой строки. Обратный отступ, тег закрытия PHP."
Где вы видите "знак доллара" | "Объект-маркер" ], просто выберите, какой вы склонны говорить за "$", я часто переключаюсь между ними, просто зависит от моей аудитории.
Итак, чтобы подвести итог, в PHP, → относится к члену объекта, будь то переменная, другой объект или метод.
Старший разработчик PHP, где я работаю, говорит "стрелка".
$A->B;
Когда он сказал мне напечатать выше, он скажет: "Доллар A стрелка B" или для
$A->B();
"Доллар A стрелка B parens."
Я бы сделал это следующим образом:
//Instantiated object variable with the name mono call property name
$mono->name;
//Instantiated object variable with the name mono call method ship
$mono->ship();
В моей книге (PHP Master Лорна Митчелл) она называется оператором объекта.
->
- это оператор свойств, используемый для PHP в объектно-ориентированном режиме.
Объект. Таким образом, $a->$b->$c
будет "Объектом B объекта c".
user187291 ответил на не-субъективный вопрос, так как для субъективного, я говорю "sub". Например, я бы произносил $x->y
, поскольку "x sub y" - "sub" в этом контексте является коротким для "индекса". Это более подходит для обозначения массива; $x['y']
Я также произношу "x sub y". Обычно, когда я читаю код вслух, я использую свои слова, чтобы определить линию, которую может видеть другой разработчик, поэтому неопределенность еще не стала проблемой. Я считаю, что причина в том, что я рассматриваю structs/objects и массивы как "коллекции", а их элементы индексируются как в математических обозначениях.
У японца есть удобная частица для этого, "нет" (の). Это притяжательная частица, означающая примерно "относящуюся к предыдущему термину".
"Фред の барсук" означает "Фрид-барсук".
Который долгий путь говорит, что, по крайней мере, мысленно, а также среди тех, кто понимает японский язык, я склонен их отличать, читая их как:
$A->B(); // "Call $A B."
C::D(); // "Call C の D."
Но чтение обоих как притяжательных "работает" тоже для неяпонских ораторов. Вы также можете перевернуть их и использовать "из", поэтому "D of C"... но это неловко, и это трудно сделать, вы быстро читаете, потому что это ломает ваш линейный поток.
Если бы я диктовал, хотя, возможно, когда кодовое кодирование и предлагая ввести тип, я бы назвал конкретные символы как "тире больше, чем стрелка" и "двойная двоеточие" (если я знаю человека, которого я "Говоря с PHPophile, я мог бы назвать это" паамаим некудотаим двойной двоеточием "в первый раз, отчасти потому, что это классная шутка, отчасти для предотвращения" исправления "меня).