为什么 implode() 可以以任意顺序接受其参数,而explode() 不能。?

2024-01-08

虽然implode()由于历史原因,可以按任一顺序接受其参数,explode()不能。为什么?

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

类似于

$array = array('lastname', 'email', 'phone');
$comma_separated = implode( $array,",");

Why?


As per implode() http://php.net/manual/en/function.implode.php#refsect1-function.implode-description and explode() http://php.net/manual/en/function.explode.php#refsect1-function.explode-parameters文件,他们只说这是历史原因。

这是在中找到的quora https://www.quora.com/What-are-the-historical-reasons-for-PHPs-implode-being-able-to-accept-its-arguments-in-either-order-but-explode-not-being-able-to。而且这个理由听起来很有希望!

我猜部分原因是爆炸的两个参数都是 字符串,因此很难区分哪个是分隔符,哪个是分隔符 如果它们被交换,这是原始字符串。然而,内爆, 采用字符串(粘合)和数组(片段)作为其参数。它在 最不容易区分它们。

“历史原因”可能指 API 设计指南的更改, 决定“较小”的参数(针、胶水)应该 在“更大”参数(干草堆、碎片)之前。内爆可能有 之前使用了相反的顺序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 implode() 可以以任意顺序接受其参数,而explode() 不能。? 的相关文章

随机推荐

  • 当 RStudio 中的 ioslides 的 type=HTML 时,调整 stargarzer 表的大小

    我刚开始使用 R Markdown 在 RStudio 中创建幻灯片演示文稿 我无法在网上找到任何可以解决我的具体问题的内容 这是close https stackoverflow com questions 15385696 how to
  • v8 中 Node.js 和 chrome 之间的区别

    镀铬版本 49 0 2623 110 m 节点 v5 10 0 这是我的代码 var a 0 function this a 1 this b 2 console log a console log a console log b 铬给出
  • dplyr 和 tidyr:将长格式转换为宽格式并排列列

    我正在创建一个shiny app用户将在其中上传包含多个变量的 csv 文件 使用dplyr 我会select前四个变量 如下所示 并将它们从长格式转换 DATA df lt read table text c Customer Rate
  • 更改绘图悬停框 R 的位置

    我想更改悬停框的位置plotly条形图 我希望它在栏上方弹出 而不是在左侧或右侧弹出 这可能吗 我一直在谷歌上搜索这个并盯着 Plotly R 参考页面几个小时 但没有运气 这是一个示例 library dplyr library plot
  • 在Oracle中使用SQL从3个表中选择数据

    我希望有人可以提供帮助 我是very这一切都是新的 我被困住了 我有 3 个表 我试图从中提取数据 顾客 custid 第一个 最后一个 积分俱乐部编号 调查编号 订单日期 订单总数 员工 empid 名字 姓氏 工资 销售额 销售日期 c
  • 简单的 REST URL 方案

    在我的网络应用程序中 我有一个user模型和一个journal and post模型 每个用户可以有多个日记 每个日记可以有多个帖子 下面是以 RESTful 方式表示这一点的最佳方式吗 profiles
  • EntityFramework Core 1.1.0 缺少 Include()? [复制]

    这个问题在这里已经有答案了 我正在使用 EntityFramework Core 1 1 0 我可以查询表并加载实体 但 Microsoft 的说明表明如果我想加载关系数据 我应该使用 Include 功能 https learn micr
  • php cURL 问题

  • 避免使用“抛出”构造函数进行堆分配

    说我有课Foo它没有定义默认构造函数并且throws在非默认构造函数中 初始化该类型的新对象时 我想捕获任何异常并返回 否则继续使用该对象 我注意到初始化这个对象 如果可能的话 很困难在堆栈上或通过使用共享指针 因为我试图避免管理内存 Fa
  • NuGet如何决定是否使用本地包缓存?

    今天 我在安装软件包时遇到了 NuGet 的奇怪行为 简要描述 作为我的构建脚本的结果 有一个 NuGet 包 我不会每次都更改版本 因此每个构建都会产生MyPackage 1 0 0 nupkg 作为构建的最后一步 我将包推送到部署在本地
  • mongodb按子字段查询

    如何查询全部 module B 以下查询不起作用 db XXX find id module B 万分感谢 数据如下 id module A date ISODate 2013 03 18T07 00 00Z value count 1 0
  • 如何在 Coq 中禁用我的自定义符号?

    我定义了一个符号来模拟命令式编程 Notation a gt gt b b a at level 50 然而之后 所有函数应用表达式都表示为 gt gt 样式 例如 在 Coq Toplevel 的证明模式下 我可以看到 bs nat gt
  • asp.net mvc 5实体框架6身份与信任级别=中等?

    创建最简单的项目 在 Visual Studio 2013 gt asp net Web 应用程序 gt 使用个人帐户进行 MVC 身份验证 它在本地主机上完美运行 但是 当发送到服务器 中等信任级别 时 当我尝试输入登录名时 该项目无法运
  • Nhibernate 错误:System.Data.SqlClient.SqlException:“索引”附近的语法不正确

    我有一个 nhibernate 解决方案 我正在尝试保存 但出现此错误 Test method HelloMusic Core Test CrudTests TestTrackAdd threw exception NHibernate E
  • Android 清单.xml

    我正在研究 Google Android 开发者网站 http developer android com resources tutorials views hello tabwidget html 中的选项卡示例 但我陷入了步骤 2 在
  • 在函数之间传递 BufReader/BufWriter 时,引用 BufReader/BufWriter 的惯用方法是什么?

    读完后std io BufReader https doc rust lang org std io struct BufReader html文档 我不知道如何最好地通过BufReader函数之间 允许多种排列 但哪种排列最好 我有一个需
  • Java打印字体拉伸

    我刚刚让打印机在 java 中工作 我也需要它 但是我需要解决最后一个问题 打印时 字体的宽度相当拉长 并不像应有的那样清晰 这是我在纸上实际绘图的代码 FontMetrics metrics graphics getFontMetrics
  • 如何找到iframe的xpath。下面是附图

    我需要在下图中找到 与您的搜索相关的品牌 文本 我如何编写 xpath 文本存在于没有 id 或类或没有唯一标识符的 iframe 中 我想使用跨度数据组件 id 找到它 但它不起作用 By xpath span data componen
  • d3js:有两个y轴时缩放

    参考 https github com mbostock d3 wiki Zoom Behavior https github com mbostock d3 wiki Zoom Behavior make zoom var zoomFir
  • 为什么 implode() 可以以任意顺序接受其参数,而explode() 不能。?

    虽然implode 由于历史原因 可以按任一顺序接受其参数 explode 不能 为什么 array array lastname email phone comma separated implode array 类似于 array ar