当使用相同的参数时,explode是否等同于implode?

4

假设我有以下函数:

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

($string == normalize($string))总是为真吗?我需要考虑哪些特殊情况吗?


1
这将是相同的。没有特殊情况。 - Charlotte Dunois
5
如果 $string 无法转换为字符串,则 $string != normalize($string) - Alex Howansky
4
如果 $string 是一个实现了 __toString() 魔术方法的对象,则 $string != normalize($string) - Alex Howansky
4
如果 $string 是带有微小浮点误差的浮点数,那么 $string != normalize($string) - Alex Howansky
2
@SaidbakR 这是一个非常合理的问题。 - klutt
显示剩余3条评论
1个回答

5
如果$string是一个字符串,那么就是这样。否则,可能会进行类型转换:
implode(",", explode(",", 0))

这将导致结果为“0”,因此$string !== normalize($string)成立,但仍然满足$string == normalize($string)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接