我有一個填充多維數組PHP函數 - >陣列
$client->getResponse()
我想直接利用該數組,像這樣一個PHP函數:
echo '$client->getResponse()[0]';
這顯然是行不通的。
我不希望有這樣做
$arr = array($client->getResponse());
爲陣,我真的不希望的另一個層面帶來的。
我有一個填充多維數組PHP函數 - >陣列
$client->getResponse()
我想直接利用該數組,像這樣一個PHP函數:
echo '$client->getResponse()[0]';
這顯然是行不通的。
我不希望有這樣做
$arr = array($client->getResponse());
爲陣,我真的不希望的另一個層面帶來的。
$arr = $client->getResponse();
echo $arr[0];
應該就足夠了。
可以約引入TMP什麼用foreach
foreach($client->getResponse() as $clientResponse){
echo $clientResponse;
}
顯示數組內的每個項目?
$tmp = $client->getResponse();
echo $tmp[0];
這就是他所說的他不想做的事 – 2011-03-07 13:14:48
那麼現在就做,謝謝 – jaxxstorm 2011-03-07 13:26:25
等一下:「$ arr = array($ client-> getResponse());因爲這會帶來另一個級別我真的不想要。「這裏唯一的問題是數組函數。 – 2011-03-07 14:38:24
注意,如果你使用:
foreach($client->getResponse() ...)
函數「」 GETRESPONSE'將在每個迭代執行...如果在「每個」過程中的數據變化,你可能有不連貫的價值觀。不是?
不正確。該方法只會被調用一次。 – 2011-03-07 13:14:13
不,該函數執行一次,初始化時 – 2011-03-07 13:14:28
Mhh,的確,確實!我混淆了「for()」... – Akarun 2011-03-07 14:41:18
您不能爲$ client表示的類創建另一種方法嗎?也許 「GetResponseEntry($ ID)」,像這樣:
function getResponseEntry($id, $default = null)
{
static $response = null;
if($response === null)
$response = $this->getResponse();
if(isset($response[$id]))
return $response[$id];
else
return $default;
}
然後,你可以把它像這樣:
echo $client->getResponseEntry(0);
它可能不是適合所有的情況,但是......也許,只是也許,它會在這裏工作。
不幸的是,這在PHP中是不可能的。唯一的選擇是方法鏈接(自PHP 5起可用) – 2011-03-07 13:13:30
可能的重複[在函數調用訪問數組元素在PHP中](http://stackoverflow.com/questions/2282051/access-array-element-from-function-call -in-php) – Gordon 2011-03-08 09:36:23