PHP5からPHP7に環境を移したら「Fatal error: Uncaught Error: Call to undefined function split() in ほげほげ」なるエラーが出た話
2018.
10.
20
10:59:43
結論から書くと
PHP7では「split()」関数がなくなったよ
ということらしいです。
「explode()」や「preg_split()」で書き換えましょう。
それでは詳細……という程でもないですが詳細を書いていきます。
お客さまがPHP5環境からPHP7環境に移行したのですけどね。
「動かないから直すの手伝って~」と依頼されたときの話です。
いろいろエラーは出ていたのですが、その中の1つが
です。
あれ?
「split()」関数ないの(--?
……なくなったようです。
PHP5.3とかでも「これは非推奨だよ!」な警告が出ていましたけどね。
PHP7で正式にサヨナラしたようです。
ということで「split()」関数を使っていた部分の処理を
「explode()」や「preg_split()」で書き換えました。
具体的には
みたいになっていたのを
や
のようにしました。
ちなみに「preg_split()」は正規表現で指定できます。
そんなアホなことするなよ!というサンプルではありますが、例えば
のような書き方で「,」と「-」を区切り文字に指定したりもできるのです。
まぁ、普通は「explode()」で良いと思いますけどね。
正規表現を使ってあれやこれやしたいときは「preg_split()」にしてください。
そんな感じ\(--)/
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()」にしてください。
そんな感じ\(--)/