Я не думаю, что этот вопрос задавался ранее (по крайней мере, я не смог найти его, если он ...)
Недавно я начал работать над большим проектом (по крайней мере, большим ООП (... под которым я имею в виду функции, классы и объекты)), чем я обычно использую; Однако тип переменной, которой должны быть аргументы моей функции, сводит меня с ума, например:
<?php
function uberFunc($myArgument){
switch($myArgument){
//Stuff
}
}
?>
И допустим, в этом примере, что $myArgument
может быть только определенным количеством ответов (то есть он не создан пользователем). Например, $myArgument
может определять порядок упорядочения sql или используемый хеш, или некоторый предопределенный список значений . Затем оператор case превращает $myArgument
в какое-то действие (добавление строки mysql или хеширование строки определенным образом).
tl; dr: Аргумент для функции, которая может быть только одним из набора предопределенных значений.
Мой вопрос: для этих типов переменных лучше использовать строковый литерал (который будет декодироваться с помощью оператора switch-case) или числа (которые также будут декодироваться с помощью оператора switch-case)
В настоящее время у меня есть триггер, который начинает создавать неуклюжий код, поэтому я хочу выбрать один (строковые литералы или числа) и придерживаться его
Преимущества (о которых я знаю) в использовании строковых литералов :
- читаемость
- Прямая диссертация (т. Е. Если вы передаете переменную, которая определяет, как организовать ваш sql, вы можете сделать что-то вроде
"SELECT * FROM main ORDER BY ".$myArgument
Преимущества (о которых я знаю) в использовании номеров :
- Может управляться математикой (если вам когда-нибудь понадобится такой кусок кода)
- Я полагаю, что они обрабатываются незначительно быстрее (хотя этого недостаточно, чтобы изменить ситуацию)