2012-08-31 2 views
1

의 내가이 있다고 가정 해 봅시다 :변수를 먼저 선언하지 않고 함수에서 배열 출력의 단일 값을 반환하려면 어떻게해야합니까?

function data() { 
    $out['a'] = "abc"; 
    $out['b'] = "def"; 
    $out['c'] = "ghi"; 
    return $out; 
} 

I 출력 할 수 있습니다 다음 반향 배열 인덱스를 사용하여 변수로 선언하여 데이터 :

$data = data(); 
echo $data['a']; 
echo $data['b']; 
echo $data['c']; 

을하지만,이 함수를 호출하고있어 다른 함수와 인라인으로, 그리고 먼저 변수를 선언하는 것을 피하려고합니다.

$traverseXML->getData("Route", "incoming", "field", "value")[0] 
//getData() returns an array, I'm trying to get a single value. 
+0

문구를 다시 작성하십시오. 나는 당신이 정말로 요구하는 것을 이해하지 못합니다. –

+1

echo current (data()); –

+2

당신이 물어 보는 것은 PHP5.4 http://php.net/manual/en/migration54.new-features.php – deefour

답변

0

는 개인적으로 내가이

같은 일을 할 것입니다 :

echo data()[0]; //pulls first value in array without declaring it as a variable first. This needs to be variable i.e. data()[1] data()[2] etc. 

또는 더 구체적으로, 나는 실제로 클래스로 할 노력하고있어 : 예를 들어, 나는 이런 식으로 뭔가를하고 싶어

<?php 
function data($key = false, $default = 'not found') { 
    $out['a'] = "abc"; 
    $out['b'] = "def"; 
    $out['c'] = "ghi"; 
    if($key) 
    { 
     if(isset($out[$key])) 
      return $out[$key]; 
     else 
      return $default; 
    }  

    else 
     return 'empty'; 
} 
?> 

<?= data('a') ?> 
+0

)에서 사용 가능한 기능이므로 배열 인덱스를 함수 인수로 제공해야합니다 - 꽤 괜찮은 해결책입니다. – Jared

+0

예, $ default 인수를 사용하면 함수는 항상 무언가를 반환하므로 정의되지 않은 인덱스 오류가 발생하지 않습니다. –

관련 문제