警告:explode()期望参数2为字符串 - 错误

时间:2014-03-20 13:16:23

标签: php

我需要帮助理解这个错误,刚开始;)

这部分代码是否会导致主题中的错误?

$var = explode(',', $var);

我猜测爆炸$ var需要它自己的变量,例如:

$myvar = explode(',', $var);

我需要理解,因为第一个代码在没有警告的情况下在我的服务器上运行,但是我的同事正在收到上述警告。

1 个答案:

答案 0 :(得分:1)

您最初担心无法使用explode(',',$ var)覆盖$ var是错误的,因为PHP能够更改$ var的类型。 但是,此代码调整应该可以使您更接近问题所在。

<?php

if(!is_string($var)) {
  echo "\n$var contains:";
  var_dump($var);
  die('as you can see, var is not a string');
}
elseif(stripos($var,',') == FALSE) {
  echo "\n$var contains:";
  var_dump($var);
  die('var is a string but has no commas');
}
else {
  $var = explode(',', $var);
  echo "\nnow $var contains:";
  var_dump($var);
  die();
}

另外,如上所述,RTM并查看explode的工作原理。