2010-11-19 2 views
0

그래서 두 개의 변수 var1,var2이 있습니다. 내가 둘을 비교하려는 결국비교시 PHP 데이터 유형이 일치하지 않음

$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에 입력. 업데이트 됨.

+0

$ var2 = 10은 무엇을 의미합니까? –

+0

[편집 도움] (http://stackoverflow.com/editing-help)을 읽어 보시기 바랍니다. 예 : 줄 바꿈에'
'이 필요하지 않습니다. 줄 끝 부분에 공백 두 개를 넣으십시오. –

+0

@Felix, 팁 주셔서 감사합니다. @ Mark - Felixs 편집에서 지금 분명해야합니다. –

답변

1

이지만, 여기에 코드입니다 :

$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을 사용했지만 중요하지 않습니다. 당신이 보여주는 코드 사이에 다른 코드가 있습니까?

0

substr_replace() 대신 str_replace()을 사용하십시오.

+0

예, 잘못되었습니다. 오타, 편집. 아직 수정이 없습니다. –

0

substr_replace에 대해 잘못된 매개 변수를 지정 했으므로 $ var1은 0으로 평가됩니다. str_replace를 사용하고 싶습니다.

+0

예, 오타가 잘못되었습니다. 아직 수정이 없습니다. –

0

타입 캐스팅이 필요 없습니다. 다만 않는 str_replace를 할

다음

내가 몇 세미콜론을 추가했다 코드

$var1 = "53,000,000" ;  
$var2 = 10; 
$var1=str_replace(',','',$var1); 
if($var1 > $var2)  
    $var2 = $var1; 

    echo $var2; 
+0

그것은 나를 위해 작동하지 않습니다, 그래서 여기에 게시했습니다. 일반적으로 그것은 –

+1

해야 Ravindrans 코드를 시도하고 그것은 PHP 5.2.4 함께 일했다. 빈 PHP 스크립트에서 이것을 시도 했습니까? 다른 코드에 간섭이 없다고 확신합니까? – acme

관련 문제