【问题标题】:Is explode equivalent to implode when using the same parameter?使用相同参数时,explode 是否等同于 implode?
【发布时间】:2018-06-21 07:28:09
【问题描述】:

假设我有以下功能:

public function normalize($string) {
  $substrings = explode(",", $string);
  return implode(",", $substrings);
}

($string == normalize($string)) 永远是真的吗?有什么特殊情况需要考虑吗?

【问题讨论】:

  • 还是一样。没有特殊情况。
  • $string != normalize($string) if $string 不能转换为字符串。
  • $string != normalize($string) 如果$string 是一个实现__toString() 魔术方法的对象。
  • $string != normalize($string) 如果$string 是带有tiny floating point error 的浮点数。
  • @SaidbakR 这是一个非常合理的问题。

标签: php explode implode


【解决方案1】:

如果 $string 是字符串,是的。

否则可能会发生类型转换:

implode(",", explode(",", 0))

这将导致“0”因此$string !== normalize($string)$string == normalize($string) 仍然成立。

【讨论】:

    猜你喜欢
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    相关资源
    最近更新 更多