...
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
函数......应该能或多或少提高点工作效率吧
写了一大堆又感觉啥都没写到,稀里糊涂的-_-!