2011-10-08 2 views
0

이 경고를 어떻게 제거합니까?end()의 참조 변수 경고로 전달

엄격한 기준 : 변수 만 내가 다차원 배열에서 고유 한 값을 가져온 다음 마지막 인덱스를 얻을 코드가

에 참조에 의해 전달되어야한다.

$catchColors[]= array(); 

for ($i = 0; $i < $totalRows; $i++) { 
    $catchColors[$i] = $postData[$i]['ColorID']; 
} 

$result = array_unique($catchColors); 
print_r($result); 

print end(array_keys($result)); 

여전히 값을 반환하지만 경고를 어떻게 제거합니까?

+3

'$ catchColors = array();'가 아니어야합니까? –

+0

error_reporting 또는 @ – steve

+0

복제 가능 [Strict 표준 : 변수 만 참조로 전달해야 함] (http://stackoverflow.com/questions/2354609/strict-standards-only-variables-should-be-passed-by-reference) –

답변

4

함수 end의 매개 변수가 참조로 전달되기 때문입니다. 따라서 다른 함수가 반환 될 수는 없으며 실제 변수와 마찬가지로 통지가 있어야합니다.

그래서 해결 방법은 키 배열을 보관할 임시 변수를 만든 다음 해당 배열에서 end을 실행하는 것입니다.

$keys = array_keys($result); 
print end($keys);