>>841
演算子orは左側を最初に評価し、falseだった場合は右側を評価します。
つまりdefined('Hoge')の評価結果がfalseであればdefine('Hoge', true)を評価します。
結果、定数'Hoge'が定義されていなければdefine('Hoge', true)が実行されることになります。