不能爆炸弦古怪的结果

时间:2015-12-17 06:53:09

标签: php

这是我的代码:

     if($heightparts[0]>9){
       echo "height=>".$heightparts[0];
       $pp=explode("",$heightparts[0]);
       var_dump($pp);die();
         //$heightparts=explode("",$heightparts[0]);
     }

这是我的输出:height=>52bool(false)

$heightparts[0]目前的值为52。

我不明白为什么在数字52上爆炸会返回bool false。我甚至尝试将$heightparts[0]作为字符串进行投射。

3 个答案:

答案 0 :(得分:1)

您正在echo后紧跟var_dump

echo输出52var_dump输出bool(false)

来自explode

的手动输入
  

如果分隔符是空字符串(""),则explode()将返回FALSE。

答案 1 :(得分:1)

使用str_split()

if ($heightparts[0] > 9) {
   echo "height=>".$heightparts[0];
   $heightparts = str_split($heightparts[0]);
}

答案 2 :(得分:1)

使用str_split

if($heightparts[0]>9){
  echo "height=>".$heightparts[0];
  $pp=str_split($heightparts[0]);
  var_dump($pp);die();
}

<强>输出:

height=>52
array(2) {
  [0]=>
  string(1) "5"
  [1]=>
  string(1) "2"
}

<强>解释

根据手册explode,您只能将字符串拆分为return,否则返回false:

  

如果分隔符是空字符串(&#34;&#34;),则explode()将返回FALSE。

您已关闭错误报告,否则您将产生错误:

  

警告:explode():在...中清空分隔符