在php中如何訪問數組的值而不使用方括號來表示鍵值?我特別的問題是我想訪問函數返回的數組的元素。說功能(參數)返回一個數組。爲什麼是 $ var = function(args)[0]; 大吼我方括號?我可以做類似 $ var = function(args).value(0); 還是我缺少一些非常基本的東西?訪問在php中沒有方括號的數組值
回答
正如其他人所說,你幾乎必須使用一個臨時變量:
$temp = myFunction();
$value = $temp[0];
但是,如果知道結構要返回的數組可以避免臨時變量。
如果你只是想第一個成員:
$value = reset(myFunction());
如果你想在最後一個成員:
$value = end(myFunction());
如果你想兩者之間的任何一個:
// second member
list(, $value) = myFunction();
// third
list(, , $value) = myFunction();
// or if you want more than one:
list(, , $thirdVar, , $fifth) = myFunction();
在PHP中,得到一個數組作爲函數的結果時,你不幸需要做一個額外的步驟:
$temp_array = function($args);
$var = $temp_array[0];
對於對象,這已經在PHP 5中放鬆你可以這樣做:
$echo function($args)->property;
(提供function
返回過程的對象。)
這很糟糕,但這是做到這一點的唯一方法。討厭PHP的原因之一。 – 2010-03-23 01:21:56
@Luke是真的,但不是*那*壞imo。誰知道,它可能會修復在PHP 7 :) – 2010-03-23 01:23:00
@Luke - 這有點強大不是嗎? – nickf 2010-03-23 01:25:11
function getKey($array, $key){
return $array[$key];
}
$var = getKey(myFunc(args), $key);
沒有辦法做這不幸的是不添加用戶功能。這只是語法的一部分。
你總是可以只是做舊的方式方法
$array = myFunc();
$value = $array[0];
究竟符合您的期望是:
echo pos(array_slice($a=myFunc(), pos(array_keys(array_keys($a), 'NameOfKey'));
回答的Kinetix健,臺北
如果你想要這個,所以最好將返回一個對象(不幸的是,它完全跛腳PHP犯規支持此)。下面有一個瘋狂的辦法,我能雖然想不通,出新意(請不要這麼做!):
function returnsArray(){
return array("foo" => "bar");
}
echo json_decode(json_encode((object)returnsArray()))->foo;
//prints 'bar'
所以yeah..until他們增加對數組中的PHP支持取消引用,我想你應該可能只是轉換返回數組作爲一個對象:
return (object)array("foo" => "bar");
,然後你可以做returnsArray() - > FOO,因爲PHP放寬非關聯化的對象,但不是數組..或課程的編寫一個包裝函數像其他人所說。
也是,看起來像這個最近已經加入到php的支持? http://wiki.php.net/rfc/functionarraydereferencing – mutexkid 2010-11-17 20:18:16
- 1. 訪問沒有括號
- 2. 沒有括號JSON數組
- 3. 訪問多個GET參數沒有括號符號
- 4. 方括號在Tcl數組
- 5. 如何在php中訪問數組值?
- 6. 用方括號PHP數組轉換JSON
- 7. PHP數組 - 方括號與大括號($ array [$ i] vs $ array {$ i})
- 8. PHP數組大括號而不是方括號
- 9. 從PHP創建JavaScript數組 - 方括號和花括號
- 10. 方括號數組訪問和句柄模板
- 11. 訪問PHP數組中的鍵值對
- 12. 訪問數組中的值php
- 13. 在數組初始化中混合圓括號和方括號
- 14. 使用括號訪問方法的Javascript?
- 15. PHP大括號到數組
- 16. php中的方括號preg_match
- 17. 數組包裹在PHP中的圓括號中(數組)
- 18. Javascript - 讀取沒有方括號的JSON數組
- 19. 解析數組周圍沒有方括號的JSON
- 20. PHP文檔中的參數,方括號?
- 21. PHP爆炸的數字在方括號
- 22. 有方括號的方括號或方括號內
- 23. 使用方括號訪問Json
- 24. 方括號(不是指對象訪問!)
- 25. 沒有括號
- 26. php大括號組
- 27. 訪問數組中的PHP數組
- 28. PHP/Krumo:訪問數組中的數組?
- 29. 如何打印沒有括號或引號的數組元素?
- 30. 如何元組轉換爲數值的字符串沒有逗號和括號
php將此引用爲函數數組引用。 從版本5開始,它已被包含在php中。4 http://php.net/manual/en/migration54.new-features.php – Steve 2015-11-13 15:56:24