プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP5からPHP7に環境を移したら「Fatal error: Uncaught Error: Call to undefined function split() in ほげほげ」なるエラーが出た話
結論から書くと

PHP7では「split()」関数がなくなったよ

ということらしいです。
「explode()」や「preg_split()」で書き換えましょう。

それでは詳細……という程でもないですが詳細を書いていきます。

お客さまがPHP5環境からPHP7環境に移行したのですけどね。
「動かないから直すの手伝って~」と依頼されたときの話です。

いろいろエラーは出ていたのですが、その中の1つが

Fatal error: Uncaught Error: Call to undefined function split() in ほげほげ

です。

あれ?
「split()」関数ないの(--?

……なくなったようです。

PHP5.3とかでも「これは非推奨だよ!」な警告が出ていましたけどね。
PHP7で正式にサヨナラしたようです。

ということで「split()」関数を使っていた部分の処理を
「explode()」や「preg_split()」で書き換えました。

具体的には

a = split(',', "a,b,c");

みたいになっていたのを

a = explode(',', "a,b,c");



a = preg_split('/[,]/', "a,b,c");

のようにしました。

ちなみに「preg_split()」は正規表現で指定できます。
そんなアホなことするなよ!というサンプルではありますが、例えば

a = preg_split('/[,-]/', "a,b,c-d-e")

のような書き方で「,」と「-」を区切り文字に指定したりもできるのです。

まぁ、普通は「explode()」で良いと思いますけどね。
正規表現を使ってあれやこれやしたいときは「preg_split()」にしてください。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事