Это «плохо» практиковать умножение $ val * 1 для преобразования нуля в ноль

Я использую PHP 5.5 для получения числового значения из числового поля таблицы базы данных postgresql. Он может прийти из БД в виде нуля или фактического числа, в любом случае я сохраню его в переменной. Как некоторые из нас могут знать или не знать ноль * 1 = 0, это то, что мне нравится делать, но я беспокоюсь о том, что это неправильно или это плохая практика — конвертировать потенциальные нулевые значения в нули без необходимости проверять значение. Увидеть ниже:

...
$fieldVal *= 1; //assume at this point this holds value returned by DB
...

Таким образом, если БД вернул ноль, то $ fieldVal будет обнулен, а любые ненулевые значения останутся без изменений. Ваши идеи очень ценятся.

3

Решение

Измените свой запрос, чтобы включить COALESCE и разрешить нулевые случаи

SELECT fieldNane

к

SELECT COALESCE(fieldName, 0)

Кстати: да, это плохая практика, вводить подобные хаки.

5

Другие решения

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

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

is_int()

или же

is_null()

И хотя эти функции имеют свои недостатки в нескольких отношениях, моя точка зрения такова: если в языке есть инструменты для выполнения чего-то, что, по вашему мнению, вы «взламываете» вместе, используйте инструменты, предоставляемые языком.

1