大盛りカルボナーラ食べたばっかりなのに、ご飯に誘われるなんて!
_, ,_ パーン
( ゜д゜)
⊂彡☆))Д´)
まぁ、行くんですけどね(´ω` )
連想配列の各要素を個別の変数にするのに今までは、
foreach( $arr as $key => $value ) { $$key = $value; }でやってたけど、
extract( $arr );でできたのね・・・。
どっちも1行だからあまり変わらないけど、後者の方はスマートっぽく見える。(゜д゜
と書いてあるように$_GETや$_POSTで使うのは、ちょっと怖ひ。
極端な例を挙げるとすると、下記のような身長と体重の数値を送ってBMI値を計算する処理を作ったとしても
$weight = $_POST['weight'];
$height = $_POST['height'];
// BMI値 = 体重[Kg] ÷ (身長[m]×身長[m])
$bmi = $weight / ( $height * $height );
extract( $_GET ); // ここで$bmi=30となる!
if ( $bmi > 22 ) {
echo "デブ!";
}「?bmi=30」とアクセスされたら、身長・体重にかかわらずあなたは常に「デブ!」である。
こんな風にユーザが変数の値を任意に操作することが可能になるので、常にデブと言われるだけならまだしも、SQL文や処理の大事なフラグも変更される恐れがありセキュリティ上好ましくない。
まぁ、使いどころに気をつけましょうというお話。