$_SESSION
私はオブジェクトを操作するのが好きなので、配列のラッパー クラスを持っています。これにより、怠け者になって、すべきではない場所からスーパー グローバルを呼び出すのを防ぐことができます。
以前は単純なもので問題ありませんでした:
public function get($name);
public function set($name, $value);
public function exists($name);
......
しかし今、私はショッピングサービスを実装しており、それにはショッピングカートがあり、ユーザーがカートにアイテムを追加すると$_SESSION['cart'][$productId]
、数量を保持するように設定され、私のものを見て分解することができget()
ますset()
.
私は現在、新しい get() 用にこれを持っています
/*
* @args: ...
* @return: mixed
*/
public function get() {
$keys = func_get_args();
$value = $_SESSION[array_shift($keys)];
foreach( $keys as $key ) {
$value = $value[$key];
}
return $value;
}
// This is how I use it then
$quantity = $session->get('cart', $productId);
検索対象のキーが存在すると完全に想定して動作しますが、存在しない場合は警告が表示されます。
問題は set() メソッドです。私は同様の方法でそれをやりたいので、メソッドの署名で任意の量のキーを指定してから、保存する値を指定できますが、とにかく私にとって非常に混乱することが証明されています.
これを達成する方法を知っている人はいますか?
ありがとう。