0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Undefined constant 'PHP_EOL'

Last updated at Posted at 2025-03-14

MacOS Sequoia 15.3.1
VScode version: 1.98.1 (Universal)
PHP 8.4.5

VScodeでアラートが出ています

alert

とあるphpファイルを触ったら、
Undefined constant 'PHP_EOL'と表示されています。
非常に怒られている感じです。
これは何でしょうか。

PHP_EOLとは

PHP_EOL は、PHPにあらかじめ定義されている定数の一つ。
コード内で直接改行コードを記述する代わりに PHP_EOL を使用することで、異なる環境でも正しく改行が行われるようになる。

Undefined constant 'PHP_EOL' とは

PHPのコード内で PHP_EOL という定数が定義されていない状態で
使用されていることを意味します。

どうして怒られるの

PHPの設定でこの定数が有効になっていない可能性あり。
もしくはコード内で PHP_EOL を誤って記述している。
..身に覚えがない..

PHP Intelephense は関係ない?

PHP Intelephenseとは:

コードの解析や補完、エラー検出などを行うための拡張機能で、先日インストールしたばかり。
インストール後からアラートが出るようになった。
これが悪さしているのではないか。

ユーザー設定を開く

  • Windows/Linux: Ctrl + Shift + P
  • macOS: Cmd + Shift + P
    基本設定: ユーザー設定を開く を選択し、settings.jsonを開く。

検索ボックスに intelephense と入力
下記2箇所でみつかるも、どっちをどう直すのか?

1箇所め

settings.json
"[php]": {
"editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
},

これは.php ファイルを開いたときのデフォルトのフォーマッター(コードの整形ツール)を PHP Intelephense に設定するもの。
コードの自動整形に関する設定であり、今回のPHP_EOL アラートとは直接関係ない。

2箇所め

settings.json
"intelephense.stubs": ["wordpress"]

この設定は、PHP Intelephense がコード解析に使用するスタブファイル(PHPの組み込み関数や定数の定義ファイル)を定義するもの。
今回の PHP_EOL アラートは、PHP Intelephense が PHP_EOL を未定義の定数として検出したのか。

PHP_EOLはPHPの組み込み定数であるため、coreというスタブファイルにも定義されている。

→それを追記すれば良いんですかね。

以下のように書き換えてみる

settings.json
"intelephense.stubs": ["wordpress", "Core"]

スタブファイル名は大文字小文字を区別する。

調べるとこの上記のように出てきますが、Cは大文字です。

settings.jsonを上書きすると、VScodeの再起動でアラートが消えました。
これにより、PHP Intelephense は WordPress 関連の関数や定数だけでなく、PHPの組込み関数や定数も認識できるようになったようです。

以上です。

参考:
VSCode 拡張機能「PHP Intelephense」の使い方、間違ってました…
https://qiita.com/falya128/items/70e854ae7ca71567820b


直接関係なかったようですが勉強になりました。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?