2012-08-11 2 views
14

배열을 반환하는 함수가 있습니다. 어떤 이유로 첫 번째 행을 반환하는 다른 함수가 있지만 중간 변수를 사용하게됩니다. 즉,이 함수는 실패합니다. 즉, 실패합니다. 즉, 실패합니다. . . 로 :PHP 배열 구문 분석 오류 왼쪽 대괄호 "["

Parse error: syntax error, unexpected '[' in util.php on line 10

하지만,이 작품 : "?"

function f1(/*some args*/) { 
    return /*an array*/; 
} 
function f2(/*some args*/) { 
    $temp = f1(/*some args*/); 
    return $temp[0]; 
} 

내가 (내 검색과 함께 사람들이 혼동하기 보관하고, "{"아무 관련 온라인을 찾을 수 없습니다 "< "등).

저는 PHP에서 독학하고 있습니다. 제가 놓친 바로 그걸 내가 직접 할 수없는 몇 가지 이유가 있습니까?

+1

[이 가능 PHP에서 익명 배열의 특정 요소를 참조 할 수 있나요?]의 중복 가능성 (HTTP에 충실해야 : //stackoverflow.com/questions/8276224/is-it-possible-to-reference-a-specific-element-of-an-anonymous-array-in-php) – DCoder

+1

가능한 복제본 [Access PHP 배열 요소는 함수?] (http://stackoverflow.com/questions/396519/access-php-array-element-with-a-function) –

+0

언어 do 5.4.0까지 허용하지 마라. –

답변

25

당신은 위의 PHP 5.4.0 때까지

return f1(/*some args*/)[0]; 

역 참조 기능의 배열을 사용할 수 없습니다.

+0

로스가 먼저 알아 냈어. 감사합니다. – imallett

+1

적절한 용어를 밝히기위한 소품으로 간단한 질문이 무엇인지에 대한 긴 검색이 종료되었습니다. –

2

이 동작의 이유는 JavaScript 함수처럼 PHP 함수를 체인으로 연결할 수 없기 때문입니다. 마치 document.getElementsByTagNames('a')[0]처럼 가능합니다.

당신은 PHP 버전에 대한 두 번째 방법 < 5.4

Function array dereferencing has been added, e.g. foo()[0].

http://php.net/manual/en/migration54.new-features.php