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

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

内容简介:实习也有小半年了,工作过程中真的学到了很多东西。今天一个在百词斩实习(前端)的死党跟我秀,说他昨天发的一篇文章是热榜第一,嘚瑟得都快上天了:我手痒了,所以把昨天工作过程中遇到的一个小问题拿出来抛砖引玉,如有不对的地方,请大佬斧正。我们在实现函数的时候,往往只有一个返回值,但有的时候这不能满足我们的需求。回想起当年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 函数......应该能或多或少提高点工作效率吧

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


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

查看所有标签

猜你喜欢:

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

JavaScript: The Definitive Guide, 5th Edition

JavaScript: The Definitive Guide, 5th Edition

David Flanagan / O'Reilly Media / 2006-08-01 / USD 49.99

This Fifth Edition is completely revised and expanded to cover JavaScript as it is used in today's Web 2.0 applications. This book is both an example-driven programmer's guide and a keep-on-your-desk ......一起来看看 《JavaScript: The Definitive Guide, 5th Edition》 这本书的介绍吧!

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

在线图片转Base64编码工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

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

RGB CMYK 互转工具