2014-04-18 5 views
0

저는이 문제에 대해 지금까지 약간의 시간을 벌어 왔습니다. 뭐가 잘못 됐는지 나는 알 수 없다. 다음 코드는 매우 간단합니다. VISOR_URL은 다른 파일에 정의 된 상수입니다. forearch 루프 외부에 echo하면 상수 값이 출력됩니다. 루프 안에 인쇄하면 값이 중복됩니다. 변수를 사용하면 동일한 문제가 발생합니다. 어떤 아이디어?. 미리 감사드립니다. 세바스찬foreach 루프 내에서 php 상수가 중복됩니다.

<?php 
require_once('conf.php');//I require the file where VISOR_URL is defined 
//VISOR_URL is defined in conf.php. define('VISOR_URL', $server_ip.'/'.VISOR_NAME); 

echo VISOR_URL; //echoes http://192.168.0.15/tncvisornuevo 

if (!empty($occurrence_ids)) {//occurrence_ids is an array and values are printed fine 

    foreach ($occurrence_ids as $key => $value) { 
     echo VISOR_URL; //echoes http://192.168.0.15/tncvisornuevohttp://192.168.0.15/tncvisornuevo 

     $ocurrencia = new ca_occurrences($value); 

     $nombre_ocurrencia = $ocurrencia->get('ca_occurrences.preferred_labels'); 

     $link = '<a href="'.VISOR_URL.'/views/occurrenceDetails.php?occurrence_id='.$value.'">'.$nombre_ocurrencia.'</a>'; 

     echo $link."<br>"; 
    } 

} 
?> 

간단한 예제를 수행하면 상수 값과 중복되지 않습니다

<?php 

//Define a constant 
define('CONSTANT', 'imaconstant'); 

echo CONSTANT."<br>"; //Echoes imaconstant 

$test_array = array(0,1,2,3,4,5,6,7,8); 

foreach ($test_array as $key => $value) { 
    echo $value.CONSTANT,"<br>"; //Echoes nimaconstant, n+1imaconstant 

} 

?> 
+2

새 ca_occurrences ($ value); 또는'$ ocurrencia-> get'이'VISOR_URL'의 값을 출력하고 있지 않은지 확인하십시오. –

답변

1

그것은 루프가 실행됩니다 많은 시간을 에코 것입니다. - 예를 들어, 배열 (3)의 크기를 갖기 때문에

$array = array('aa','bb','cc'); 
$var = "abc"; 

foreach($array as $key => $value); 
{ 
    echo $var.'<br>'; 
} 

/* 
    abc 
    abc 
    abc 
*/ 

이제 루프는 3 회 이상 실행하고 3 회 당연히 가변 ... 메아리.

+0

OP는 루프의 다른 것들을 에코합니다. 'echo VISOR_URL; ...; echo $ link. "
"; ' – Sam

+0

그리고 foreach 루프 안에서 $ var를 사용하고 싶습니까? – sms

+0

@sms -'foreach' 안에'$ var' 만 출력합니다 –