8wired

とりあえずやってみるブログ

phpのissetとdefinedの使い分け

こんな見慣れないエラーが出た。

PHP Parse error:  syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM in

エラーの出所は、こんな感じの定数に値がセットされているかどうかの判定です。

if ( isset ( REMOTE_ADDR ) ) { ... }

T_PAAMAYIM_NEKUDOTAYIMという見た事もない、読み方もわからない名前に面食らったのですが、エラーの原因はissetは変数のnull判定で使用するもので、定数にはdefinedを使用しなければいけないという単純な話でした。

if ( defined ( 'REMOTE_ADDR' ) ) { ... }

これでエラーは出なくなり一安心。

ちなみにT_PAAMAYIM_NEKUDOTAYIMは、ヘブライ語でスコープ演算子(ダブルコロン「::」)のことだそうです。今回は使ってないんですが、どういうことだったんでしょう。

-ITネタ
-