電子書籍の厳選無料作品が豊富!

preg_matchと定数について

$string = "○○ドメイン";
if (preg_match("/$string/", $_SERVER['SERVER_NAME'])) {
 echo "○";
} else {
 echo "✕";

とやると○になるのですが、

define("DOMAIN", "○○ドメイン");
if (preg_match("/DOMAIN/", $_SERVER['SERVER_NAME'])) {
 echo "○";
} else {
 echo "✕";
}

とすると、✕になります。

なぜでしょうか?

A 回答 (1件)

変数の場合 $ で始まるので変数名だと明示されているため処理ができますが、定数の場合ダブルクォーテーションのなかで使われると文字列なのか定数なのか判断する術が無いから、単なる文字列として扱われてしまいます。



if (preg_match("/".DOMAIN."/", $_SERVER['SERVER_NAME'])) {

として使いましょう。
    • good
    • 0
この回答へのお礼

回答&詳細な解説ありがとうございました。
おかげで無事動作しました!

お礼日時:2012/04/20 08:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!