2013-03-26 3 views
-4

다음 코드가 있습니다. 루프 내부에있는 If 문을 모아 놓은 것입니다. if 문은 문자열 (API의 JSON에서 가져온 문자열)과 미리 정의 된 텍스트를 비교합니다. 문제는 "If =="비교가 처음으로 루프를 통해서만 작동한다는 것입니다. 루프를 통해 후속 시간에는 작동하지 않습니다. 내가 텍스트를 에코 할 때 나는 그것을 비교할 것과 똑같이 보입니다.PHP == 비교가 루프에서 작동하지 않습니다.

$vstate = (string)$vstate; 
$vstate = trim($vstate); 

//THERE IS A PROBLEM HERE ON THE SECOND LOOP 
if($vstate == "Alabama") {$fstate = "01";} 
if($vstate == "Alaska") {$fstate = "02";} 
if($vstate == "Arizona") {$fstate = "04";} 
if($vstate == "Arkansas") {$fstate = "05";} 
if($vstate == "California") {$fstate = "06";} 
if($vstate == "Colorado") {$fstate = "08";} 
if($vstate == "Connecticut") {$fstate = "09";} 
if($vstate == "Delaware") {$fstate = "10";} 
if($vstate == "District of Columbia") {$fstate = "11";} 
if($vstate == "Florida") {$cstate = "12";} 
if($vstate == "Georgia") {$cstate = "13";} 
if($vstate == "Hawaii") {$cstate = "15";} 
if($vstate == "Idaho") {$cstate = "16";} 
if($vstate == "Illinois") {$cstate = "17";} 
if($vstate == "Indiana") {$cstate = "18";} 
if($vstate == "Iowa") {$cstate = "19";} 
if($vstate == "Kansas") {$cstate = "20";} 
if($vstate == "Kentucky") {$cstate = "21";} 
if($vstate == "Louisiana") {$cstate = "22";} 
if($vstate == "Maine") {$cstate = "23";} 
if($vstate == "Maryland") {$cstate = "24";} 
if($vstate == "Massachusetts") {$cstate = "25";} 
if($vstate == "Michigan") {$cstate = "26";} 
if($vstate == "Minnesota") {$cstate = "27";} 
if($vstate == "Mississippi") {$cstate = "28";} 
if($vstate == "Missouri") {$cstate = "29";} 
if($vstate == "Montana") {$cstate = "30";} 
if($vstate == "Nebraska") {$cstate = "31";} 
if($vstate == "Nevada") {$cstate = "32";} 
if($vstate == "New Hampshire") {$cstate = "33";} 
if($vstate == "New Jersey") {$cstate = "34";} 
if($vstate == "New Mexico") {$cstate = "35";} 
if($vstate == "New York") {$cstate = "36";} 
if($vstate == "North Carolina") {$cstate = "37";} 
if($vstate == "North Dakota") {$cstate = "38";} 
if($vstate == "Ohio") {$cstate = "39";} 
if($vstate == "Oklahoma") {$cstate = "40";} 
if($vstate == "Oregon") {$cstate = "41";} 
if($vstate == "Pennsylvania") {$cstate = "42";} 
if($vstate == "Rhode Island") {$cstate = "44";} 
if($vstate == "South Carolina") {$cstate = "45";} 
if($vstate == "South Dakota") {$cstate = "46";} 
if($vstate == "Tennessee") {$cstate = "47";} 
if($vstate == "Texas") {$cstate = "48";} 
if($vstate == "Utah") {$cstate = "49";} 
if($vstate == "Vermont") {$cstate = "50";} 
if($vstate == "Virginia") {$cstate = "51";} 
if($vstate == "Washington") {$cstate = "53";} 
if($vstate == "West Virginia") {$cstate = "54";} 
if($vstate == "Wisconsin") {$cstate = "55";} 
if($vstate == "Wyoming") {$cstate = "56";} 
if($vstate == "Puerto Rico") {$cstate = "72";} 
if($vstate == "American Samoa") {$cstate = "60";} 
if($vstate == "Federated States of Micronesia") {$cstate = "64";} 
if($vstate == "Guam") {$cstate = "66";} 
if($vstate == "Marshall Islands") {$cstate = "68";} 
if($vstate == "Commonwealth of the Northern Mariana Islands") {$cstate = "69";} 
if($vstate == "Palau") {$cstate = "70";} 
if($vstate == "Puerto Rico") {$cstate = "72";} 
if($vstate == "U.S. Minor Outlying Islands") {$cstate = "74";} 
if($vstate == "U.S. Virgin Islands") {$cstate = "78";} 
if($vstate == "Baker Island") {$cstate = "81";} 
if($vstate == "Howland Island") {$cstate = "84";} 
if($vstate == "Jarvis Island") {$cstate = "86";} 
if($vstate == "Johnston Atoll") {$cstate = "67";} 
if($vstate == "Kingman Reef") {$cstate = "89";} 
if($vstate == "Midway Islands") {$cstate = "71";} 
if($vstate == "Navassa Island") {$cstate = "76";} 
if($vstate == "Palmyra Atoll") {$cstate = "95";} 
if($vstate == "Wake Island") {$cstate = "79";} 

echo("The vstate is " . $vstate . "<br>"); 
echo("The cstate is " . $cstate . "<br>"); 

어떻게하면됩니까? 이미 Trim()을 추가하려고 시도했지만 문제가 해결되지 않았습니다.

당신에게

+2

루프가 어디에 있습니까? – funerr

+0

switch 문을 사용하거나 배열을 사용하여 데이터를 나타내야합니다. – PsyKzz

+0

'switch()'를 사용하면 왜 잘못 되었습니까? – hjpotter92

답변

0

$의 FSTATE 감사해야 cstate $는 "루프"를 입력하기 전에 정의되어야한다. 둘 다 캡슐화 된 공간에서 생성되며 if 블록이 끝나면 제거됩니다.

덤핑하면 어떻게됩니까? 예상대로 문자열에 제대로 캐스팅 되었습니까?

+0

이것은 루프가 질문에서 생략 된 것처럼 어떻게 구현되는지 알지 못하지만 아주 좋은 지적입니다. – PsyKzz

+0

^실제로 시작하는 루프가 있다고 가정하고 있습니다. – ShaunUK

+0

Ogelami와 Daedalus가 문제를 발견했습니다. 고맙습니다! – mnutsch

관련 문제