稀里糊涂系列之list函数妙用

栏目: PHP · 发布时间: 6年前

内容简介:实习也有小半年了,工作过程中真的学到了很多东西。今天一个在百词斩实习(前端)的死党跟我秀,说他昨天发的一篇文章是热榜第一,嘚瑟得都快上天了:我手痒了,所以把昨天工作过程中遇到的一个小问题拿出来抛砖引玉,如有不对的地方,请大佬斧正。我们在实现函数的时候,往往只有一个返回值,但有的时候这不能满足我们的需求。回想起当年c/c++的指针和引用,用得不亦乐乎,怎一个“爽”字了得啊。

实习也有小半年了,工作过程中真的学到了很多东西。今天一个在百词斩实习(前端)的死党跟我秀,说他昨天发的一篇文章是热榜第一,嘚瑟得都快上天了: 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 和 php 7 版本的 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 函数。

感兴趣的还有 explodeimplode 函数......应该能或多或少提高点工作效率吧

写了一大堆又感觉啥都没写到,稀里糊涂的-_-!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

逆流而上

逆流而上

阿里巴巴集团成长集编委会 / 电子工业出版社 / 2017-11 / 59.00

本书是阿里巴巴集团荣耀背后的技术血泪史。全书通过分享业务运行过程中各个领域发生的典型“踩坑”案例,帮助大家快速提升自我及团队协作,学习到宝贵的处理经验及实践方案,为互联网生产系统的稳定共同努力。从基础架构、中间件、数据库、云计算、大数据等技术领域中不断积累经验,颠覆技术瓶颈,不断创新以适应不断增长的需求。 本书主要面向互联网技术从业人员和在校师生,使读者能够通过此书基本了解阿里在各技术领域的能力,......一起来看看 《逆流而上》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试