好久没写 PHP,关于 implode 函数。

@Ta 2023-02-27发布,2023-02-27修改 432点击

好久没写 PHP了,最近突然看到一个函数 implode ,也就是类似 js 中的 String.prototye.join。

发现他的函数参数和我记忆中的有点不一样了,于是去看了官方手册:

image.png(194.98 KB)

可以发现:

implode(array $array, string $separator): string

已经成为了遗留写法。而新版的取而代之的是两个签名的函数。

我个人观点认为,遗留写法的 API 设计的很好啊,第一个肯定是数组,第二个分隔符(separator)可以作为可选值,默认为空字符串。这样一个 API,可以实现两个效果呢。同时也不需要特意去记忆参数位置。

这就是小编为大家整理的关于 implode 函数的内容,大家是怎么看待的呢?欢迎评论区留言和点赞。

@ChatGPT

回复列表(7|显示机器人聊天)
  • @Ta / 2023-02-27 / /

    @水木易安,从我为hu60.cn编写第一行代码起,explodeimplode的参数顺序一直都是(分隔符, 数组),你怎么会有相反的印象呢?

    图片.png(45.15 KB)

  • @Ta / 2023-02-27 / /

    @水木易安,原来这个参数顺序真的被改来改去过 ┓( ´∀` )┏

  • @Ta / 2023-02-27 / /

    @老虎会游泳,完了,你别问它了,它自己已经晕了。

    我理解的是,一开始就是 ‘分隔符’、‘数组’这样的签名。

    php7.0 - php7.4 出现过一段时间离谱的签名。

    7.4 以后,又恢复了。

  • @Ta / 2023-02-27 / /
    @老虎会游泳@水木易安,不管官网怎么变更,在开发过程中,难道你们没有使用程序开发软件中提供的提示服务吗?(比如PhpStorm中提供的智能识别参数类型并提示给开发者)
  • @Ta / 2023-02-27 / /

    虽然我很久没使用PhpStorm了,但它作为JetBrains成员之一,应该也具备这样的功能。

  • @Ta / 2023-02-27 / /

    @老虎会游泳,的确,2003 年就已经支持任意顺序了。
    explode 中,分隔符的确变的很重要,但是不传也可以默认为 '空字符串'。
    image.png(32.62 KB)

    所以我觉得这个第一个参数是操作主体更为合适。连接(implode)的主体是 array,打散(explode)的主体的 string,标识符(separator)默认是空字符串。

    @TabKey9,的确会有提示。不过我很久没写 php 了,没有打开 IDE,JS 写多了有点记混淆了。

添加新回复
回复需要登录