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

Is explode equivalent to implode when using the same parameter?

假设我有以下功能:

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

($string == normalize($string)) 会永远是真的吗?有没有我应该考虑的特殊情况?

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

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

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

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