フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【PHPエラー】Call to undefined function split()の解決方法

Fatal error: Uncaught Error: Call to undefined function split()
PHP
エラー
トラブルシューティング
プログラミング

こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。

PHPでプログラムを作っていると突然表示されるエラー文章。突然エラーが表示されると焦ってしまいますよね。
今回の記事ではPHPエラーの中でもFatal error: Uncaught Error: Call to undefined function split()について、原因から実際の具体例、その解決方法まで順を追って詳しく解説したいと思います。

Fatal error: Uncaught Error: Call to undefined function split()とは

まずは実際にFatal error: Uncaught Error: Call to undefined function split()がどのように表示されるのか見てみましょう。
このエラーは以下の画像のように表示されます。

Fatal error: Uncaught Error: Call to undefined function split() in ●●:▲▲ Stack trace: #0 {main} thrown in ●● on line ▲▲

このエラーが表示される原因は定義されていないsplit関数を使用したため起こるエラーです。

  • ●●・・・未定義のsplit関数が書かれている「ディレクトリ名/ファイル名」
  • ▲▲・・・エラーの原因となる処理が書かれている行数

「●●ファイルの▲▲行目でsplit関数が使用されているよ」という内容のエラー文章です。

split関数はPHPの組み込み関数でしたが、PHP5.3で非推奨となり、PHP7以降で廃止されました。
そのため古いシステムのPHPをアップデートした際に発生する可能性があります。

Fatal error: Uncaught Error: Call to undefined function split()が起こる具体例

”split関数が使用されている”と書きましたが、実際にどういうことなのか、実際にこのFatal error: Uncaught Error: Call to undefined function split()が発生するコードを交えてご紹介します。

<?php

$data = "a,b,c,d,e,f";
$text = split(",", $data);

?>

split関数はPHP7以降廃止されている組み込み関数のため、使用するとFatal error: Uncaught Error: Call to undefined function split()が表示されます。

Fatal error: Uncaught Error: Call to undefined function split()の解決方法

split関数はPHP7以降廃止されている組み込み関数のため、エラーが起こるとご紹介しました。

そのため、split関数と同じ働きをする代替関数のexplode関数に置き換えてあげることでエラーは解消します。

<?php

$data = "a,b,c,d,e,f";
$text = explode(",", $data);

// var_dump($data);
// array(6) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" [4]=> string(1) "e" [5]=> string(1) "f" }

?>

このふたつの関数は厳密には異なる動きをしましたが、文字列を分解して配列で返すという意味では、同じ動作をする関数です。

まとめ

いかがでしたか?
同じ言語でもバージョンが変わることで使用出来なくなる関数や機能が出てきます。バージョンアップによる不具合はつきものなのでいきなりアップデートするのではなく、テスト環境で検証をしたうえでアップデートするようにしましょう。