PHP 5.2.10에서 Ubuntu PHP 5.2.10-2의 물체를 통해 반복 할 수 없습니까?
-
13-09-2019 - |
문제
이 코드를 사용하면 객체를 반복하고 있습니다.
공장:
- 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 문자열이없는 한; 이거 작동 안 할거야.
제휴하지 않습니다 StackOverflow