2016-11-02 2 views
0

함수에서 json을 반환하는 방법을 알지 못합니다. 여기에 내가 노력 코드는 다음과 같습니다함수에서 json을 반환하고 변수에 전달하십시오.

function buildJson(){ 
    ... $json_source is parsed by http (this works) 
    $source = json_decode($json_source, true); 
    $res = $source['child']; 
    echo count($res); // 6 

    return $res; 
    //return json_encode($res); 
} 

////// 

$json_res = buildJson(); 
echo count($json_res); // 0 

for($i = 0; $i < count($json_res); $i++){ 
    $item = $json_res[$i]; 
} 
그것이 내가 너무 많은 것들을 시도 작동 않지만 $에 대한 json_res 0마다입니다 계산 방법

? 미안 그 많은 경험이 없어 :)

EDIT : "$ json_source"함수 buildJson() 내에 생성됩니다. 나는 그것이 "echo count ($ res); // 6"와 함께 존재하는지 테스트했다. 그리고 함수 내에서 $ res의 모든 값에 접근 할 수는 있지만 리턴 할 수없고 바깥에서도 접근 할 수 없습니다. 그래서 "$ json_source"는 문제가 아닙니다. 다른 아이디어?

해결 : 이제는 buildJson()에서 buildJson()을 호출 할 때마다 코딩 문제로 인해 문제가 발견되었습니다. 이제 나는 그것을 다른 방법으로 코딩했고 지금은 작동합니다. 고마워요 @all :)

+0

buildJson의 PARAM은 –

+0

읽기 누락되었습니다 http://stackoverflow.com/help/mcve – walther

+0

를 나는 그것이 HTTP 구문 분석의는 $ json_source를 제공 ​​할 수 없습니다. – Mona935

답변

0

귀하의 기능에 매개 변수를 전달하십시오. 당신이 당신의 JSON

function buildJson($json_source){ 
    $source = json_decode($json_source, true); 
    $res = $source['child']; 
    echo count($res); // 6 

    return $res; 
    //return json_encode($res); 
} 



$json_res = buildJson($json_source); 
echo count($json_res); // 0 

for($i = 0; $i < count($json_res); $i++){ 
    $item = $json_res[$i]; 
} 
+0

질문을 편집했습니다. 문제가 아닙니다. Json이 그렇게 반환 될 수 있습니까? 아니면이 변수를 반환하기 위해 배열과 같은 다른 변수로 채워야할까요? 하지만 어떻게 해야할지 모르겠다. – Mona935

0

이 코드를 시도하기위한 데이터 소스를 가지고 있지 않기 때문에 나는이 작동하지의 생각합니다.

$json_res = buildJson(); 
$json_res = json_decode($json_res,true); 
    echo count($json_res); 

for($i = 0; $i < count($json_res); $i++){ 
    $item = $json_res[$i]; 
} 
관련 문제