大文字と小文字を区別しないパラメーターで定数をオーバーライドしています。しかし、php では「定数が既に定義されています」というエラーは表示されません。E_ALL、E_STRICT エラーを有効にしました。例:1
define('ONE',1000);
define('one',2000,true);
echo ONE; // prints 1000
echo one; // prints 2000
2 行目では、大文字と小文字を区別しない別の定数として「one」を作成しています。これは、「ONE」を再定義することを意味します。しかし、PHP はエラーや警告を出しません。
例:2
define('ONE',1000,true);
define('one',2000);
echo ONE; // prints 1000 with constant already defined notice
echo one; // prints 1000
ここでエラー通知を取得できます。
これら 2 つのコード ブロックの違いは何ですか?