...
1、前言
實習也有小半年了,工作過程中真的學到了很多東西。今天一個在百詞斬實習(前端)的死黨跟我秀,說他昨天發的一篇文章是熱榜第一,嘚瑟得都快上天了: 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
函式......應該能或多或少提高點工作效率吧
寫了一大堆又感覺啥都沒寫到,稀裡糊塗的-_-!