PHP 空の文字列を explode した時の挙動

ショコラ
ショコラ

PHP 空の文字列を explode した時の挙動

ここで問題です。空の文字列を explode します。この $a はどうなるでしょうか?

$a = explode(‘:’,”)

空の配列(array()、[])になると思いましたが。。。違います。

もっさん先輩
もっさん先輩

答え

echo count(explode(',',''));
1
var_dump(explode(',',''));
array(1) {
  [0]=>
  string(0) ""
}

ということで、foreach に explode の結果を与えると、予期せぬ「空のループ」が回ってしまう可能性があります。

空のループを回さない方法は、explode の前に空文字かのチェックを入れます。

if ('' != $s) {
  foreach (explode(',',$s) as $i) {
    :
  }
}

以上

Scroll to Top