Як ви називаєте цього ->
оператора, який шукає стрілку, знайденого в PHP?
Це або знак мінуса, тире або дефіс, за яким слід більший за знак (або правий шеврон).
Як ви вимовляєте це, читаючи код вголос?
Як ви називаєте цього ->
оператора, який шукає стрілку, знайденого в PHP?
Це або знак мінуса, тире або дефіс, за яким слід більший за знак (або правий шеврон).
Як ви вимовляєте це, читаючи код вголос?
Відповіді:
Офіційна назва - "оператор об'єкта" - T_OBJECT_OPERATOR . Я називаю це «стрілою».
T_DOUBLE_COLON
. Я
$a->do()
"метод A" і $a->thing
"є властивістю A", тому це відносно.
T_PAAMAYIM_NEKUDOTAYIM
точно означає "подвійний двокрап" на івриті.
Я називаю це " дротиком "; як у $Foo->bar()
: "Foo dart bar"
Оскільки багато мов використовують "крапку", як у Foo.bar();
мене, я хотів використовувати односкладне слово. "Стріла" просто занадто довговітча! ;)
Оскільки PHP використовує .
"крапку" для конкатенації (чому?), Я не можу сміливо сказати "крапка" - це може сплутати.
Обговорюючи з колегою деякий час назад, ми зважилися на "дротик" як слово, схоже на "крапка", щоб текти зручно, але досить чітко (принаймні, коли ми це говоримо), щоб не помилитися з примикаючою "крапкою" .
Читаючи код PHP вголос, я не вимовляю оператора "->". Бо $db->prepare($query);
я переважно кажу "Db [коротка пауза] підготуйте запит". Тому я здогадуюсь, що я говорю це як кома у звичайному реченні.
Те ж саме стосується і Паакаїма Некудотайма ("::").
Читаючи код собі, я думаю про це як про "посівну річ".
Наприклад:
x->value = y->value
буде читати "значення x дорівнює значенню y"
Найчастіше я використовую деяку варіацію методу @Tor Valamo ("метод B A" або "A B метод"), але іноді кажу "крапка". Наприклад, "зателефонувати в крапку B ()".
->
виникає питання, що ви називаєте в C / C ++, де він відрізняється функціоналом від фактичного оператора крапок?
Оператор нерухомості.
Під час читання $a->b()
або $a->b
голосу я просто кажу "дзвоніть b на $ a obj" або "отримуйте b з / в / з $ a"
Мені особисто подобається бути багатослівним у висловленні свого коду усно.
наприклад:
$foo = new Foo();
echo $foo->bar
буде читати як таке:
echo (/ print) властивості смуги об'єкта foo.
Це багатослівно і забирає більше часу, але я знаходжу, якщо є причина, щоб я висловлював свій код усно, то, мабуть, мені потрібно зрозуміти, що саме я повідомляю.
Одну стрілку можна легко позначати усно як те, що означає для PHP OOP: Учасник. Отже, для$a->var
ви б сказали: "Об'єкт-член-вар".
Читаючи код вголос, це допомагає читати вперед (посилання на пошуки, вибачте), і знати, на що ви можете насправді мати на увазі. Наприклад, давайте наступний біт коду:
<?php
Class MyClass {
$foo = 0;
public function bar() {
return $this->foo;
}
}
$myobject = new MyClass();
$myobject->bar();
?>
Отже, якби я читав уголос цей блок коду як демонстрацію коду, я сказав би це:
"Визначте клас" MyClass ", відкрита дужка. Змінна 'foo' дорівнює нулю, кінцева лінія. Визначте загальну функцію 'bar' в дужках з відкритим закриттям, відкритим дужкою. . Close-brace, close-brace. Негайний новий екземпляр "MyClass" (без аргументів) як змінний об'єкт "myobject", термінал завершення. Метод виклику члена "bar" об'єкта "myobject", завершення рядка ".
Однак якби я читав код вголос, щоб інші студенти чи програмісти копіювали без наочності, то я б сказав:
"PHP відкритий тег (повний), новий рядок, відступ, клас MyClass open-brace, newline. Відступ, ['знак-долар' | 'Маркер об'єкта'] foo дорівнює 0, крапка з комою, новий рядок, новий рядок. закрити дужки, відкрита дужка, новий рядок. Відступ, повернути ['знак долара' | 'Маркер об'єкта'] ця стрілка, колонка, крапка з комою, новий рядок. Зворотний відступ, близький дужок, новий рядок, зворотний відступ, близький дужки. , новий рядок, новий рядок. ['знак-долар' | 'Маркер об'єкта'] мій об’єкт дорівнює новим дужкам MyClass з відкритим закриттям, крапкою з комою, новою лінією. круглі дужки, крапка з комою, новий рядок. Зворотний відступ, PHP тег. "
Де ви бачите ['знак долара' | "Об'єкт-маркер"], просто вибирайте те, що ви схильні говорити за "$", я часто перемикаюся між двома, просто залежить від моєї аудиторії.
Отже, підсумовуючи це, в PHP, -> посилається на член об'єкта, будь то змінною, іншим об'єктом або методом.
Старший розробник PHP, де я працюю, каже "стрілка".
$A->B;
Коли він скаже мені набрати вище, він скаже: "Долар А стрілка В" або "за"
$A->B();
"Парель долара А парен."
Я б це зробив так:
//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 від Lorna Mitchell) вона називається оператором об'єктів .
У японця є зручна для цього частинка "ні" (の). Це присвійна частка, що приблизно означає "відношення до попереднього терміна".
"Бард Фред の" означає "борсук Фреда".
Який шлях можна сказати, що принаймні подумки, а також серед тих, хто розуміє японську мову, я схильний розмежовувати їх, читаючи їх як:
$A->B(); // "Call $A's B."
C::D(); // "Call C の D."
Але читання як "прихильне" працює також для не-японських мовців. Ви також можете перевернути їх і використовувати "з", так що "D з C" ... але це якось незручно, і важко це зробити, ви швидко читаєте, оскільки він порушує ваш лінійний потік.
Якби я диктував, хоча, можливо, коли кодує пару і підказує, що слід вводити, я б позначав конкретні символи як "тире, більший за стрілку" і "подвійний двокрапка" (якщо я знаю людину, про яку я говорю to є PHPofhile, я можу назвати, що "paamayim nekudotayim подвійною двокрапкою" вперше, почасти тому, що це крутий жарт, частково для того, щоб не допустити їх "виправлення" мене).
->
є оператором властивостей, що використовується для PHP в об'єктно-орієнтованому режимі.
користувач187291 відповів на суб'єктивне запитання, що стосується суб'єктивного, я кажу "суб". Наприклад, я б назвав $x->y
"x sub y" - "sub" в цьому контексті скороченням "subcript". Це більше підходить для позначення масиву; $x['y']
Я також вимовляю "x sub y". Як правило, читаючи код вголос, я використовую свої слова, щоб визначити рядок, який може побачити інший розробник, тому неоднозначність ще не стала проблемою. Я вважаю, що причина полягає в тому, що я розглядаю структури / об'єкти та масиви як "колекції", а елементи їх підписуються як у математичних позначеннях.