PHPで便利かもしれないcookie用関数を作った
2007/05/29
cookieに複数の値を設定する場合って、setCookie関数呼出しが羅列されてよくない。
#その前にcookieにたくさんの項目を入れる方が悪いというのは置いといて。
キーを指定して、$_REQUESTのキーと値をそのままcookieに保存する。
<?php setCookies(array("name", "mailaddress", "tel", "fax")); ?>
キーを指定して、cookieから削除する。
<?php deleteCookies(array("name", "mailaddress", "tel", "fax")); ?>
setCookiesは、使い回す程汎用的にはできてないですがorz.
コード
<?php function setCookies($keys) { $expire = time() + (3600 * 24 * 30); array_map( create_function( '$key', 'setCookie($key, $_REQUEST[$key], ' . "$expire, '/phpapp');"), $keys); } function deleteCookies($keys) { array_map( create_function( '$key', 'setCookie($key, "");'), $keys); } ?>
array_map とcreate_functionを使ってみた。
create_functionで面白いと思ったところは、” と “” を使い分けることで変数の評価タイミングを制御できるところでした。
'' で囲んである文字列は、map実行時に評価される。 "" で囲んである文字列は、定義時に評価される。
っていうか、マトモな無名関数がないから成せる技?
lisp 勉強してたから理解が速かったのかも。