я отслеживаю значение переменной $b, и если она является целой, добавляю десятичный ноль при выводе строки: PHP: $bvar = $b; switch ($b) { case 1: $bvar = '1.0'; break; case 2: $bvar = '2.0'; break; case 3: $bvar = '3.0'; break; case 4: $bvar = '4.0'; break; case 5: $bvar = '5.0'; break; case 6: $bvar = '6.0'; break; case 7: $bvar = '7.0'; break; case 8: $bvar = '8.0'; break; case 9: $bvar = '9.0'; break; } echo $bvar; то есть я отслеживаю, как умею на самом деле я думаю, что есть способ проверять, является ли переменная целой, без знаков после запятой : и если это так, просто добавлять при выводе строки ".0" не могу найти, как проверить целостность переменной
С регулярками у меня плохо... Вот, что смогла собрать: PHP: $bvar = $b; if (preg_match("/^[0-9]+$/",$b)){ $bvar = ($b . '.0'); } echo $bvar;
@vayo если у тебя есть ограниченный набор допустимых значений, ты можешь задать этот "белый список" в массиве. я не про конкретно '9' => '9.0', а вообще про подход. PHP: $whiteList = [....]; if (!in_array($parameter, $whiteList)) { abort(403); } // мы уверены, что параметр годный, делаем что-то полезное ... $value = $parameter . '.0'; // ... Обрати внимение: здесь нет блока else. Он не нужен. В целом, лучше вызвать состояние ошибки (исключение) как можно раньше чтобы оставшийся код был простым и без лишних вложенностей if - if - if. Поэтому, например, в Laravel можно вынести проверку валидности данных в класс запроса, а метод контроллера будет работать только с годными данными.
Я думаю, в данном конкретном случае массив не нужен, правильность переменной при вводе проверяется в другом скрипте Мне лишь интересно, как правильнее: PHP: if (!is_float($b)){ echo $b . ".0"; } else echo $b; или всё же использовать регулярки PHP: $bvar = $b; if (preg_match("/^[0-9]+$/",$b)){ $bvar = ($b . '.0'); } echo $bvar; или ещё проще способ есть?
PHP: $bvar = 5; //- Только цифры if ( is_numeric ( $bvar ) ) { $bvar = number_format( $bvar, 1,".",""); echo $bvar; }
это вот совсем непонятно зачем вы написали у меня в шапке ведь ясно сказано, что отслеживается именно целое число Что именно годно? Что вы скажите по моему примеру?
Годно - это было про комментарий непосредственно над моим. Здесь подойдёт is_numeric. Точно не надо регулярку, точно не нужен блок else. И как я сказал, неправильный пользовательский ввод нехорошо игнорировать. Лучше сигналить ошибку и прекращать выполнение скрипта.