2011年6月7日火曜日

PHP:define は

 お仕事のソースで、暗号化と復号の関数をソースファイルの後ろの方に書き込んだ。両方で使っている定数があったので、関数の前に出して define で定義したら...、動かない。

 PHP の define には以前も嵌って、そのときは解決できなかったので今度こそと詳しく調べていくと...。

 関数の直前で define を定義しているのに有効にならない。なぜだぁぁぁ!!!

----
 PHP ってインタープリターだから、インタープリターが define を解釈しないと有効にならないのね。C はコンパイラだから、使う関数の前で #define してあれば、ソース上のそれより後ろで有効になるけど、PHP の場合は記述してある位置に関係なく、使う前にインタープリターが解釈している必要があると。

 define をソースの頭に持っていって解決。フツーに C でやっていることだが、しかし、定数定義は使うところの近くでやりたいなぁ...