@QNA-1976

Как привести float к int при шаблонизации?

private function templateEngine($vars, $content)
{
    $page = preg_replace('#<\?.*?\?>#s', null, $content);
    foreach ($vars as $item => $value) {
        if (is_float($value)) {
            $value = (int)$value; // 100.00 так и остаётся
        }
        if (is_array($value) or is_object($value)) {
            foreach ($value as $k => $v) {
                if (is_float($v)) {
                   $v = (int)$v; // 100.00 так и остаётся
                }  
                $page = str_replace("{{$k}}", $v, $page);
            }
        } else {
            $page = str_replace("{{$item}}", $value, $page);
        }
    }
    return $page;
}
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 2
@NinjaNickName
Web разработчик
intval();

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
$value = (int)$value; // 100.00 так и остаётся
Не остается. (int) прекрасно работает.
Если у тебя так и остается, ищи что не так в твоем собственном гуанокоде.

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

Войдите, чтобы написать ответ

Похожие вопросы