2012-01-11 4 views
1

함수의 반환 값에서 배열에 직접 액세스 할 수 있기를 원합니다.함수에 의해 반환 된 배열의 키에 액세스하는 방법

e.g. 
$arr = find_student(); 
echo $arr['name']; 

// I want to be able to do 
echo find_student()['name'] 

어떻게하면됩니까? 다른 코드 줄이 없다면?

+0

원하는 것을 수행 할 수 없습니다. 먼저 변수에 반환 값을 할당해야합니다. – jere

+0

PHP 5.4의 경우 몇 주/개월 동안 기다려야합니다.이 구문을 허용합니까? –

답변

6

수 없습니다. PHP 구문 구문 분석기는 제한되어 있으며 현재 버전에서는 허용되지 않습니다.

PHP 개발자는 곧 출시 될 PHP 용 파서를 확장했습니다. 구문 분석 오류 : 여기 blog talking about it

2

에 대한 링크가 당신이 :)

function find_student() {return array('name'=>123);} 
echo find_student()['name']; 

결과 캔트이다 ','기대 '['구문 오류, 예기치 않은 또는 ';'

2

ArrayObject을 사용하면 비슷한 것을 할 수 있습니다.

function find_student() { 
//Generating the array.. 
$array = array("name" => "John", "age" => "23"); 

return new ArrayObject($array); 
} 

echo find_student()->name; 
// Equals to 
$student = find_student(); 
echo $student['name']; 

단점은 array_merge()과 같은 기본 배열 기능을 사용할 수 없다는 것입니다. 그러나 배열 에서처럼 객체 에서처럼 데이터에 액세스 할 수 있습니다.

+0

그래,이 방법 중 하나 일 것입니다. 감사합니다 –

+0

또한 배열 함수를 사용하려면 다음과 같이하면됩니다 : (array) find_student(); – Prof83

관련 문제