phpでcall to undefined function が起きた時の対処法

php初心者の自分が躓いたポイントを備忘録として書いておきます。

require_once “~~.php”; を加える

言うまでもなく、大抵の場合はこれで解決します。undefinedだったphpファイルを require_onceで読み込むコードを追記します。

require_once "hoge/MyMath.php";
calcSqrt();


ただ、laravel等のフレームワークを使われている方は「ほかの場所では require_once なんて使っていないぞ?」となる場合があるかと思いますが、その場合は autoload が働いている可能性が高いため、以下をお試しください。(require_onceでも問題ないはずですが、規模が大きくなると記述がかなり煩雑になるため)

composer dumpautoload を実行

composerで autoload を使っている場合は新規ファイルにindexが張れていない可能性があります。
素人がlaravelとか使っていると(まさに私ですが)、use を使えばimportできていると思ってしまってこけます。例えば私が使用していたlaravelのテンプレートでは、 composer.jsonapp/ 以下がloadされるようautoloadが定義されていました。

...
"autoload": {
        "psr-4": {
            "App\\": "app/",
...

自分の使いたい形で修正したのち、シェルで以下を実行します。

composer dumpautoload

コメント

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