2014-07-22 2 views
0

내 데이터베이스에서 내 웹 사이트에 내 뉴스 피드를 동적으로로드하는 기능을 사용하고 특정 사용자 등의 게시물 유형에 대한 변수가있는 함수를 만들었습니다. while() 루프를 실행하여 평소처럼 각 게시물을 반환하고 싶다면 어떻게 함수 내에서이 작업을 수행 할 수 있습니까? 루프를 실행하고 단일 변수에 표시 할 내용을 설정해 보았습니다. 그러면 루프 내에서 반환됩니다. 루프 내에서 매번 return을 실행하면 함수가 하나씩 차례로 반복됩니다. 논리적으로 생각하면 분명히 일어나지 않을 것입니다. 누군가가 어떻게 달성 될 수 있는지 설명 할 수 있습니까?PHP 함수 : 루프에서 데이터 반환

예 (유사) 코드 : 함수 액세스

:

<?php echo getNews(); ?> 

함수 :

<?php function getNews(){ 
//query stuff 
while($row = mysql_fetch_array($result)){ 
    $return = "Looped data"; 
    return $return; 
} 
?> 

답변

1

복귀의 실행 기능을 정지한다. 첫 번째 return 기능을 나누기로 시도 반환은 루프

의 측면을 사용해야이 기능

<?php function getNews() 
{ 
    $return =array() 
    while($row = mysql_fetch_array($result)) 
    { 
    $return[] = "Looped data"; 

    } 
    return $return; 
} 
?> 
1

같은 것을 시도 할 수 그래서 첫 번째 행은 가져 왔습니다. 데이터를 배열에 임시로 저장하고이를 반환 할 수 있습니다. echo을 입력하면 implode()이됩니다.

function getNews(){ 
    //query stuff 
    $result = array(); 
    while($row = mysql_fetch_array($result)){ 
     $result[] = "looped data"; 
    } 
    return $result; 
} 

echo implode("<br>\n", getNews()); 

나중에 배열을 가져 오는 것이 더 유용 할 수 있습니다. 또한 함수 이름은 제 의견으로는 더 설명하기 쉽습니다. 그것은 concat/etc를 말하지 않으며, 오직 얻는다.

+0

-1 : 이것은 루프 된 데이터의 마지막 행만 반환합니다 –

+0

내 코드 – Vijayaragavendran

+0

을 업데이트했습니다. Downvote가 제거되었습니다.) –

0

function getNews(){ 
    $html = null; 
    //query stuff 
    while($row = mysql_fetch_array($result)){ 
     $return = "Looped data"; 
     $html .= $return; 
    } 
    return $html; 
} 
0

각 루프와 함께 돌아 오는 기능을 사용할 수 없습니다. 또는 루프에서 생성 된 결과를 변수 또는 배열에 저장하고 변수/배열을 반환 할 수도 있습니다. 예 사용하는 변수입니다 : 당신의 목적은 변수를 사용하지 않고 함수 자체에서 그것을보다 단지 echo 결과

<?php function getNews() { 
    //query stuff 
    $return = ""; 
    while($row = mysql_fetch_array($result)) { 
     $return .= "Looped data";  
    } 
    return $return; 
} 
?> 

합니다. result를 사용하여 무언가를 처리하려면 Array가 좋을 것입니다.