eval関数
JavaScript触った方なら馴染みがあるかもしれないeval()関数、俺はJSONのデータ取り扱いで引っかかって使わなくなった(俺がね)ひどい関数です。
PHPにもeval関数があるのだけれども今回はこいつに救われた、しかしどんな関数なのかわからないと話が進まない。
PHPのマニュアルを置いておきますがもちろんココでも書きます
俺の汚い説明だけだと分かりにくいと思われますので上のマニュアルへのリンクも参照ください。
説明に入ります。
- どんな関数?
- 与えられた文字列をコードとして評価する。
こんな感じ
<?php header("Content-type:text/html;charset=EUC-JP") ; require("../../error_out.php") ; $song = "初音ミクの消失" ; $codes = <<<CODE if(\$song == '初音ミクの消失'){ echo "信じた物は 都合のいい妄想と 繰り返し映しだす鏡/初音ミクの消失" ; }else{ echo "冗談混じりの境界線上 階段のそのまた向こう/ワールズエンド・ダンスホール" ; } CODE; echo eval($codes) ; ?>
洒落を込めてボカロ曲の歌詞にしてみました、条件はぱっと見てわかるとおり
$songの値が「初音ミクの消失」ならばその曲のサビを出力
それ以外ならワールズエンド・ダンスホールの最初の歌詞を出力
- 実行結果
信じた物は都合のいい妄想と 繰り返し映しだす鏡
- インド人
ワールズエンドダンスホールで思い出したがなんかインド人のダンスシーンと合わせたバージョンがあったな。