2008-10-15 4 views
1

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

Так что я м пытается назвать этот массив/структура:

$nameMe = array(
    '392' => TRUE, 
    '234' => TRUE, 
    '754' => TRUE, 
    '464' => TRUE, 
); 

и используется, чтобы проверить, что идентификатор имеет определенное свойство, как и

if(isset($name[$id])) { 
    doSomething(); 
} 

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

$propertyNameArrayIdIndexed 

Любые идеи о том, как я могу лучше назвать эту конкретную функцию массива? или лучшие имена вообще

ответ

4
$hasProperty[$id] 

или

$isSomething[$id] 

Что такое свойство именно?

$isOdd[$id] 
$isWriteable[$id] 
$hasAssociatedFile[$id] 
2

Нет ничего плохого в длинных именах переменных, если они описывают, что делает переменная, а не как объявлены или определены.

2

Я бы выбросил «Массив» из имен переменных.

Функция, которая используется массив может быть назван что-то вроде:

IsPropertyAvailable ($ ID)

или просто

IsAvailable ($ ID)

при правильном инкапсулированные?.

Таким образом, связанная структура данных для запроса может быть назван

$ availableIds

1

Вы хотите, чтобы ваш код должен читаться так же, как простой английский язык как можно скорее. На простом английском вы получите что-то вроде:

Если автомобиль красный ли красный автомобиль материал

Так что моя рекомендация состоит в том, чтобы избежать введения ненужных «(компьютерный термин массив», «свойство», «индекс» и т.д.) в наименовании переменной. Ваш язык программирования накладывает на вас «isset». Это прекрасно, что дает понять, что у вас есть массив логических значений и означает, что вы можете просто сказать;

если (isset (красный [car_idx])) dosomething();

Резюме: Я думаю, что массив следует называть просто как свойство, которое вы пытаетесь проверить. Если имя свойства является хорошим английским прилагательным, которое применяется к существительному или нет, логическая природа массива очевидна даже без isset(). Так просто;

Красный [], продолговатый [], Большой []

Не IsRed [], IsOblong [], IsLarge [], так как дополнительные "Is" в дополнение к одному в Исеть() является излишним.

0

Ваш массив будет содержать true? Если да, то я бы сказал, изменить структуру данных что-то вроде этого:

$availableIds = array(392, 234, 754, 464); 

и тогда ваши if заявления гораздо более значимым:

if (in_array($myId, $availableIds)) { ... } 
+0

Это означает, что торговый амортизированный O (1) для O (n), не является хорошим шагом, если n может стать большим – Javier 2008-10-15 01:30:43

1

Имя переменные по их «роли» (в UML), а не их тип. Итак, правильное имя переменной должно сильно зависеть от того, где и как ее использовать. Простое знание типа структуры данных недостаточно, чтобы дать ему имя apt. Итак, скажите, что у вас есть перечисление свойств, каждый из которых может быть визуализирован как значок. Я бы не заметил никаких признаков типа и объявлял что-то вроде Set<Property> displayableIcons.

Даже если вы используете венгерскую нотацию, фактический тип не должен быть частью имени, но некоторый тип-определитель или указание неформального подтипа будет в порядке, например, String b64JpgMugshot.

0

Я просто использую dah [].

0

Я согласен с другими комментаторами в том, что у вопроса, похоже, не хватает надлежащего контекста для правильного краткого наименования, но может работать что-то общее, подобное ['foo'], включенному ['bar'] или готовому ['ack'].

Смежные вопросы