看板 PHP 關於我們 聯絡資訊
function get_array() { return array('a', 'b', 'c'); } 我要怎麼直接取值? 右邊這個不能用,$b = get_array()[1]; 還是只能存在變數來用? $arr = get_array(); $b = $arr[1]; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.69.166.241
see7di:function get_array($x){$array=array('a','b','c'); 07/16 15:57
see7di:return $array[$x];} 07/16 15:58
see7di:或者 $y=(Is_array($y=get_array())) ? $y[0] : ''; 07/16 16:02
liaosankai:PHP5.4.x 後才支援你寫的方式 07/16 16:03
所以之前的版本只能透過改變結構的方式囉?
see7di:這種呢? $y=($y=get_array() And isSet($y[0]))?$y[0]:''; 07/16 16:09
tkdmaf:我相信1樓的寫法,你整個都眼花掉了。 07/16 16:54
tkdmaf:我的建議則是:即使新方法允許,也不一定會是最好的做法。 07/16 16:55
a60301:推一樓 07/16 17:45
gpmm:list 最直覺吧,剛剛看到第一個想倒也是 list :Q DK 大有回了 07/16 18:15
a60301:推 list 也推 function 加參數 07/16 18:22
可惜list不適用,抱歉原文沒詳述
tkdmaf:我不推一樓的原因是因為:如果function不是自己寫的呢? 07/16 18:52
tkdmaf:動手去改別人的function嗎?那萬一改了造成其他故障呢? 07/16 18:52
tkdmaf:但是如果是原PO原本的寫法,或是list就不會有這問題。 07/16 18:53
a60301:function get_array_by_index($index) { 07/16 19:08
a60301: $array = get_array(); 07/16 19:08
a60301: if (isset($array[$i])) { 07/16 19:08
a60301: return $array[$i]; 07/16 19:08
a60301: } else { 07/16 19:09
a60301: return false; 07/16 19:09
a60301: } 07/16 19:09
a60301:} 07/16 19:09
a60301:我發現我上面是打$index下面是打$i(面壁 07/16 19:09
see7di:不難看出發問者想偷懶,結果又出來一個funciton,哈哈!! 07/16 21:40
tkdmaf:所以樓上,你成為絕世高手了嗎?還是你找到高手了? 07/16 21:51
tails32100:依發問者的需求 在5.4以下是無解的,只能改習慣Orz 07/16 21:53
tkdmaf:其實我個人覺得……他原本那樣寫就行了。 07/16 22:08
tkdmaf:不是著墨在程式非要精簡到什麼樣的省事地步。 07/16 22:09
tkdmaf:而是著重在自己以及別人能不能看得懂。 07/16 22:09
tkdmaf:如果你看一行code的時間比你看三行code還慢的話。 07/16 22:10
tkdmaf:你就要認真考慮真的不是少就是好。 07/16 22:10
see7di:樓上的,你不考慮程式的效能嗎? 07/16 22:14
tkdmaf:我看不出這邊跟效能有什麼必然的關係。 07/16 22:18
tkdmaf:重點是你想講效能,請問你有寫CODE去測效能? 07/16 22:18
tkdmaf:還是你認為效能是嘴巴說這樣快就一定快? 07/16 22:19
tkdmaf:沒有做過整體的效能評估的話,怎麼知道整體的快慢? 07/16 22:19
gname:精簡語法與效能似乎不是成絕對的關係... 07/16 22:24
twsphere:我也會推...原本寫那樣就好... 07/16 23:24
是啊,最後我還是直接存變數再取來用 因為get_array()只是一個比喻用的function tkdmaf:我不推一樓的原因是因為:如果function不是自己寫的呢? 07/16 18:52 所以最後是偷懶不成了 see7di:不難看出發問者想偷懶,結果又出來一個funciton,哈哈!! 07/16 21:40 ※ 編輯: Qiqi 來自: 210.69.166.241 (07/17 12:21)
chph:如果return的陣列是associative array可以用extract 07/18 00:53
chph:extract(get_array()); var_dump($a, $b, $c); 07/18 00:54