PHPで便利かもしれないcookie用関数を作った

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 勉強してたから理解が速かったのかも。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください