2010-06-28 3 views
1

Мне нужно проверить, равны ли две переменные. Но один из них в строчном формате, а другой - номер.Как преобразовать числовое число в строку?

Итак, я пытаюсь преобразовать переменную в текст, но безуспешно.

У вас есть идея?

+0

Можете ли вы показать код? Вы пробовали сравнение? Скорее всего, если Smarty сравнивает то же самое, что и '' '' '' '' '' '' '' '' '' '' '' '', '' 1 ''окажется равным. –

+0

Да, я попытался сравнить с ==, но он не работает – bahamut100

ответ

2

Попробуйте использовать {$ number | string_format: "%. 2f"}, чтобы преобразовать оба числа в строки и сравнить их. или {$ number | string_format: "% d"}, если это целое число, а не числа с плавающей запятой.

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

Если это не поможет, отправьте свой код. Возможно, проблема заключается в другой строке.

0

У меня была такая же проблема из-за того, что php автоматически преобразовывал ключи массива (строки) в целые числа на основе того факта, что они выглядят как целые числа (это фактически документированная функция " !), а затем испортить мое сравнение в Smarty. Прямо вперед и довольно ужасный способ сделать это:

{php}$this->assign('STR', strval($this->get_template_vars('NUM')));{/php} 

Если вам нужно использовать его чаще в вашем коде, рассмотрим написание пользовательских Smarty {strval}.

0

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

$var1 = 10; 
$var2 = "10"; 
{$converted = settype($var2, 'integer')} 

ИЛИ

{$converted = settype($var1, 'string')} 

Это даст вам ВАР одного и того же типа. Единственная причина иметь переменную с переменным $, потому что возвращенный bool будет отображаться на вашей странице, если он не назначен.

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