PHPエラー「PHP Notice: Use of undefined constant」の原因と解決方法
PHPプログラミングをしていると、
PHP Notice: Use of undefined constant htmlspecialchars - assumed 'htmlspecialchars'
というエラーに遭遇した。
エラーメッセージを直訳すると、以下の意味のようになる。
PHP 注意:未定義の定数『htmlspecialchars』は、『'htmlspecialchars'』と思われる。
このことから、このPHPエラーの原因は、シングルクォーテーション(')を付けていないことであると考えられ、エラーを解決するには、値の前後にシングルクォーテーション(')を付ければよい、と推測できる。
このエラーメッセージをヒントに、エラーが発生しているプログラム行を確認すると、以下のようになっていた。
$_POST = array_map(htmlspecialchars,$_POST);
htmlspecialcharsは関数だが、array_map関数の第1引数にセットする場合、シングルクォーテーション(')で囲む必要があるようだ。
修正前>
$_POST = array_map(htmlspecialchars,$_POST);
<修正後>
$_POST = array_map('htmlspecialchars',$_POST);
修正後のプログラムでは、PHP Notice エラーは発生しなくなった。
array_map関数だけの問題ではないかと思うが、関数や定数を引数にセットする場合、シングルクォーテーション(')で囲む、囲まないについて注意しなくてはならないと思った。