【PHP】空文字が1つ入った配列が返される、explode関数の危険な仕様

プログラミング

どうも、コウイチです。

今回は、PHPのexplode関数について、ハマったのでメモします。

思い込みでコーディングしてると、恐ろしいバグに出会ってしまいますね(;゚Д゚)

そもそも、explode関数とは何か?から見ていきましょう。

explode関数とは

explode関数とは、指定した区切り文字で、文字列を区切り、配列として返します。

今回は、カンマで文字列を分割してみます。

 

実行結果

フルーツは5種類です。
Array
(
[0] => りんご
[1] => バナナ
[2] => いちご
[3] => メロン
[4] => みかん
)
うむ。納得の結果です。

explode関数の危険な仕様

それでは次に、危険な仕様を再現します。

$str変数を空っぽにして試してみましょう。

 

どうなると思いますか?

 

僕の予想では、空の配列が返されると思ってました。当然ですよね・・・?

 

実行結果

フルーツは1種類です。
Array
(
[0] =>
)
コウイチ
コウイチ

フルーツの数が1種類!?こいつは何を言っているんだ?

どうみても空っぽだろ。

要素数0の空の配列が返されると思っていた僕の頭の中はパニック状態に。

得体のしれないフルーツの正体

この、得体のしれない1種類の要素は何者なのでしょうか。

 

格闘すること数分。

 

どうやら、何もない要素が1つある配列が返されたようです。

 

なんとも奇妙な仕様でしょうか?

 

解決案

解決案ですが、$str変数が空の可能性がある場合は、条件分岐して対応した方がよさそうです。

 

実行結果

フルーツは0種類です。

まとめ

思い込みでハマらないように、気を付けたいものです。

参考になれば幸いです。

スキルに自信がない20代でも、フリーランスになって月50万以上を稼げます。

最後に僕の実体験から、プログラマーが最も簡単に収入を上げる方法をお伝えします。

それは、フリーランスになることです。

 

エンジニアだったら誰でもフリーランスになれます。

業務経験が1年もあれば、月収50万が狙えます。

 

信じられないかもしれませんが、

フリーランスというのは稼げる働き方なのです。

 

僕は正社員でプログラマーをしていたのですが、

・終電帰りが当たり前
・上司に毎日怒鳴られる。
・手取り16万

という地獄のような環境が耐えられなくなり、

フリーランスになったら月収がいきなり60万になりました。

 

正直僕なんか、大したスキルはありません。

いつも下っ端の下請けプログラマーでした。

 

なのに収入は3倍になりました。

自信と健康とお金を手に入れることができました。

 

いつまでたっても上がらない正社員の給料にイライラしている方は、

是非フリーランスにチャレンジしてください。

 

プログラマーが最速で月収を上げる方法です。

 

・フリーランスなんて不安定じゃん。仕事見つからなかったらどうするの?

・仕事探しがだるい。

・転職活動なんかする暇ないんだよ

・俺のスキルじゃ無理なんだよ

 

僕もそう思ってビビってました。

ですが、思った以上に簡単でした。

 

思い込みというのは本当に恐ろしいです。

やれば行ける世界です。

 

そんな僕がフリーランスになって、

3年間働いても上がらなかった給料を、

一瞬で3倍に上げた方法を、以下の記事で書いています。


【月収20万円⇒月収60万円】価値ナシ貧乏プログラマーの僕が、7日間で収入が3倍になった物語

プログラミング
衣食住よりプログラミング

コメント

タイトルとURLをコピーしました