Несоответствие типов данных PHP при сравнении
Итак, у меня есть 2 переменные, var1,
var2
,
$var1 = "53,000,000" //- integer
$var2 = 10 //- string
В конце я хочу сравнить оба, поэтому я
$var1 = (int)str_replace(",","",$var1); // => 53000000 - integer
Вот моя проблема.. если я сделаю:
if($var1 > $var2)
$var2 = $var1
я получил $var2 = 0
.... Зачем?
.. работает на PHP 5.2.14
РЕДАКТИРОВАТЬ Случайно набрал в substr_replace вместо str_replace. Обновлено.
4 ответа
Решение
Мне пришлось добавить пару точек с запятой, но вот код:
$var1 = "53,000,000"; //- integer
$var2 = 10; //- string
//In the end I want to compare both, so I
$var1 = (int)str_replace(",","",$var1); // => 53000000 - integer
//Here's my issue .. if I do:
if($var1 > $var2)
$var2 = $var1;
var_dump($var1, $var2);
И вот мой вывод:
int (53000000) int (53000000)
Я использовал 5.2.6, но это не должно иметь значения. Есть ли у вас какой-либо другой код между тем, что вы показываете?
Вы указали неправильные параметры для substr_replace, поэтому $var1 оценивается как 0. Я думаю, вы хотели использовать str_replace.
Нет необходимости для литья типов. просто сделай str_replace
Вот код
$var1 = "53,000,000" ;
$var2 = 10;
$var1=str_replace(',','',$var1);
if($var1 > $var2)
$var2 = $var1;
echo $var2;