稀里糊涂系列之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 函数......应该能或多或少提高点工作效率吧

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


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

查看所有标签

猜你喜欢:

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

C++编程思想(第1卷)

C++编程思想(第1卷)

[美] Bruce Eckel / 刘宗田、袁兆山、潘秋菱 / 机械工业出版社 / 2002-9 / 59.00元

《C++编程思考》第2版与第1版相比,在章节安排上有以下改变。增加了两章:“对象的创建与使用”和“C++中的C”,前者与“对象导言”实际上是第1版“对象的演化”一章的彻底重写,增加了近几年面向对象方法和编程方法的最瓣研究与实践的有效成果,后者的添加使不熟悉C的读者可以直接使用这本书。删去了四章:“输入输出流介绍”、“多重继承”、“异常处理”和“运行时类型识别”,删去的内容属于C++中较复杂的主题,......一起来看看 《C++编程思想(第1卷)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具