PHP - Стоит ли включать тип данных в имя переменной? - PullRequest
6 голосов
/ 22 января 2010

Я пытаюсь написать свой код как можно более простым и понятным, и я подумал о включении типа данных, которые переменная содержит в своем имени.

например:

$intCurrentLine = 1; instead of $currentLine = 1;
$strUser = 'blah'; instead of $user = 'blah';

Я не думаю, что это действительно необходимо в приведенном выше примере, но может ли это быть полезным в некоторых случаях?

  • Может ли это сделать мой код более понятным?
  • Должен ли я на самом деле использовать это или придерживаться "нормальных" имен переменных?
  • Знаете ли вы сценарии, где это используется?

С наилучшими пожеланиями, ламы

Ответы [ 9 ]

8 голосов
/ 22 января 2010

Добавление типа к имени переменной называется Венгерская нотация .

Это вопрос стиля в типизированных языках, таких как PHP и VB. Я предпочитаю не использовать, потому что в этом нет реальной необходимости.

Это хорошая статья по теме. http://www.joelonsoftware.com/articles/Wrong.html

1 голос
/ 22 января 2010

Я не фанат венгерской нотации. Это мое личное мнение, и я сознательно субъективен в этом вопросе.

Извлечение венгерской записи из файла PHP

  1. Может ли это сделать мой код более понятным?
    • Нет, это бесполезно
  2. Должен ли я на самом деле использовать это или придерживаться "нормальных" имен переменных?
    • Палка с нормальными именами
  3. Знаете ли вы сценарии, где это используется?
    • Да, но это не имеет значения
1 голос
/ 22 января 2010

Это называется венгерской нотацией и считается плохой практикой.

По словам Роберта К. Мартина, автора «Чистого кода», кодировки типов «усложняют изменение имени или типа переменной, функции или класса. Они затрудняют чтение кода. И они создают вероятность того, что система кодирования может ввести читателя в заблуждение. "

Не используйте их. Мудро выбирайте имена переменных.

1 голос
/ 22 января 2010

Мое эмпирическое правило состоит в том, что, пока ваша переменная имеет однозначное имя, нет необходимости также аннотировать ее типом.

1 голос
/ 22 января 2010

Это определенно поможет вам узнать тип данных ваших переменных без необходимости использования ctype или подобного.

Если вы попытаетесь дать своим переменным имена, которые неявно определяют их тип, например $userName, у вас не должно быть слишком много проблем.

1 голос
/ 22 января 2010

Меня учили этому на уроках программирования в колледже, но в реальном мире это оказалось бесполезным. Я просто пытаюсь сделать имя переменной описательной, и это обычно передает, какой это тип. Например, firstName означает строку для меня, или в вашем случае currentLine означает int.

Я думаю, что до тех пор, пока вы будете описательны и точны в названии, этого достаточно.

0 голосов
/ 22 января 2010

Вы можете указать это в своих комментариях.

Что-то вроде

/*
*
* @var string
*/

$your_var = '';

Если у вас есть хорошая идея, она подхватит эти вещи:)

0 голосов
/ 22 января 2010

обычно я использую $ sVar для строк, $ iVar для целых чисел, $ aVar для массивов и т. Д. (Где Var заменено на имя переменной). Это небольшое дополнение и немного понятнее для меня.

0 голосов
/ 22 января 2010

Я не думаю, что тип переменной добавляет понимания. Я предлагаю вам использовать значащие имена, такие как

$currentLineNumber = 1; instead of $currentLine = 1;
$userName = 'blah'; instead of $user = 'blah';

Хотя в этом случае $currentLine довольно ясно дает понять, что это значит.

В отличие от этого, даже если я добавлю тип, не обязательно легче понять, что на самом деле делает переменная, например $floatNumber против $numberOfStores.

...