1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「VS Code + PHP Intelephense」の不可解なエラー・開発者として再認識した事

Last updated at Posted at 2025-10-01

はじめに

多くのPHPはHTMLの出力を行いますが、PHPの中にHTMLとJavaScriptを書き込む事が多く、特にJavaScriptはバグが有ると全く動きません。「PHP Intelephense」はバグを表示し、修正するとバグの表示は消えます。ここまでは普通の話なので、読み飛ばして下さい。最初は以下の記事に助けて貰えると期待したのですが、違う現象でした。

不可解なエラーが発生

PHPとJavaScriptのコードには一切バグは無く、そのコードは全くエラーを発生しないでブラウザで動作するのに「PHP Intelephense」はそのコード全体を「真っ赤」にするようなエラーを示してくれました。

バグ探しの開始

PHPのコード全体にエラーがという事で何処からスタートすれば良いのか?Google検索で調べても全く解答が得られずに、今更ですが「ChatGPT」に「PHPにJavaScriptを組み合わせたコードには全くバグが無いのにPHP Intelephenseにより全体がエラーだと表示される理由は?」と聞いたら?「JavaScriptを外部ファイルにしたら」と提案されました。

SQLは無視して「JavaScriptを上から消してみた」

実はこれが正解でした。JavaScriptをモジュール毎に上から消してみました。最初は100ステップ程度をばっさり消して「PHP Intelephense」の反応を見ました。これが大正解で、見事に「真っ赤」な現象は収まりました。でも100ステップから問題を探すのは大変なので、消したコードを戻して「JavaScript」のモジュールを更に細分化して消してみたところが、5ステップ程度で真っ赤な状態が収まり、その中だと判明しました。

PHPでもJavaScriptでも無ければ「HTML」を疑え

細分化したJavaScriptの中に記述されたコードの中になんともつまらないエラーが?存在していました。コードは短縮していますが、実際には500文字程度ありまして、HTMLを書き換える(innerHTML)コードになります。あまりにも長いので閉じるタグを見落としていたのが原因です。

error.html
<a href="javascript:oo1()"><input type="button" value="" style="font-size:1.4vh;"></div>

これを以下に変更

<a href="javascript:oo1()"><input type="button" value="" style="font-size:1.4vh;"></a>

エラーの画面をお見せします。

こんな画面をみても仕方が有りませんが、エラー画面の右側の一部で、HTMLのタグが一つだけ違う事でこんな事になってしまいます。類似するHTMLのコードが全部エラーとされたようですが、そのHTMLに間違いはありません。

phpの中のJavaScript内のHTMLのタグの問題でコード全体が真っ赤になります。

err.png

開発者としてのアプローチ

最近、話題になっている以下の記事を読ませて頂きましたが、開発者として「コマンドやシンタックス」を覚える事以上に問題に対する「アプローチの引き出し」を増やすことが大切だと、今回の問題を通じて再認識しました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?