문제

이 코드를 사용하면 객체를 반복하고 있습니다.

공장:

  • WAMP 및 PHP가있는 창 5.2.9
  • PHP 5.2.10이있는 Linux 웹 서버

내 데스크탑에서 작동하지 않습니다.

  • REPO의 PHP 5.2.10-2의 Ubuntu 9.10
$incomingData = json_decode($_POST['data']);

foreach($incomingData as $key => $action)
{

}

foreach ()에 제공된 잘못된 인수

도움이 되었습니까?

해결책

서버 중 하나에 magic_quotes_gpc가 활성화되어 있으므로 해독하기 전에 $ _post [ 'data']에서 스트립 슬래시를 사용할 수 있습니다. 두 PHP 버전 모두 객체를 반복 할 수 있어야합니다.

다른 팁

PHP 버전이 올바르게 있다고 확신하십니까?

문서에서 foreach:

PHP 5 기준으로 객체를 반복 할 수 있습니다.

사용해보십시오 json_decode 두 번째 인수가 설정되어 있습니다 true, 만들다 json_decode 객체보다는 연관 배열을 반환합니다.

$incomingData = json_decode($_POST['data'], true);

두 번째 논쟁이있는 곳, $assoc (기본값 false) 수단:

언제 TRUE, 반환 된 객체는 연관 배열로 변환됩니다.

내 생각에 하나의 상자에 PHP 5보다 적습니다.

그것이 문제인지 확인하려면 변경해보십시오 $incomingData 어떤 종류의 무해한 연관 배열에 :

$incomingData = array("foo" => "bar", "baz" => "monkey");

그리고 그것이 오류가 사라지는 지 확인하십시오.

시도해보십시오 :

$data_array = get_object_vars(json_decode($json_data));

print_r($data_array);

this is only if you obtain information from some web page such as

$data = file_get_contents('http://www.someurl.com/somerestful_url/');
$data_array = get_object_vars(json_decode($data));
print_r($data_array);

또한, 당신은 아마도 json_encode를하려고했지만 대신 json_decode ($ _ post [ 'data'])를 넣습니다.

$ _post [ 'data'] 내부에 JSON 문자열이없는 한; 이거 작동 안 할거야.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top