稀裡糊塗系列之list函式妙用
實習也有小半年了,工作過程中真的學到了很多東西。今天一個在百詞斬實習(前端)的死黨跟我秀,說他昨天發的一篇文章是熱榜第一,嘚瑟得都快上天了:ofollow,noindex">juejin.im/post/5bcd9e…
我手癢了,所以把昨天工作過程中遇到的一個小問題拿出來拋磚引玉,如有不對的地方,請大佬斧正。
2、場景
我們在實現函式的時候,往往只有一個返回值,但有的時候這不能滿足我們的需求。回想起當年c/c++的指標和引用,用得不亦樂乎,怎一個“爽”字了得啊。
當然,php也有引用,不知道為啥,反正我用得很不爽(強迫症)。但這不是本篇文章的重點,以後再說。
php語言的陣列算是這門語言最有魅力的地方,在處理上述問題時,完全可以把所有的東西打包成一個數組返回。
例如:
$x = null; $y = null; function foo($x, $y) { $x = ['a', 'b', 'c']; $y = [23, 12, 8, 17]; return [ 'x' => $x, 'y' => $y ]; // 或者這樣:(這個函式也很方便,有興趣的小盆友可以自己google) // return compact($x, $y); } $z = foo($x, $y); $x = $z['x']; $y = $z['y']; 複製程式碼
3、list()函式
list()這個函式比較冷門吧,我是在看某個框架原始碼的時候發現的,大佬可以略過,菜鳥可以看一看。用法如下:
array list ( mixed $var [, mixed $... ] )
官方文件中是這樣寫的:“
像array()
一樣,list()
不是真正的函式,而是語言結構。list()
可以在單次操作內就為一組變數賦值。
”
Note: list() 僅能用於數字索引的陣列,並假定數字索引從 0 開始。 並且,php5.6 和 php7 版本的 list() 用法有變化
// 5.6版本 list($z, $y, $x) = array('x', 'y', 'z'); // 7.0+版本 list($x, $y, $z) = array('x', 'y', 'z'); 複製程式碼
官方連結:
4、“茴”字的第二種寫法
$x = null; $y = null; function foo($x, $y) { $x = ['a', 'b', 'c']; $y = [23, 12, 8, 17]; return [$x, $y]; } list($x, $y) = foo($x, $y); 複製程式碼
5、後記
額,貌似也就只減少了幾行程式碼......
其中提到了compact
函式,還有與之對應的extract
函式。
感興趣的還有explode
和implode
函式......應該能或多或少提高點工作效率吧
寫了一大堆又感覺啥都沒寫到,稀裡糊塗的-_-!