Bir $ _COOKIE dizinin silinmesi ilk öğe

2 Cevap

Ben gibi $ _COOKIE diziye bir öğe eklerseniz:

setcookie("favorites[]", "value",  time()+3600);   

Ben böyle $ _COOKIE [favorim] diziden herhangi bir öğeyi silebilirsiniz:

setcookie("favorites[$deletekey]", "", time()+3600);  

Eklendi ilki DIŞINDA yüzden bu işe yaramazsa:

setcookie("favorites[0]", "", time()+3600*24);  

Nasıl ilk tek silmek ve bozulmamış başkalarına bırakabilir?

2 Cevap

Eğer diziler nasıl çalıştığını biliyorsanız, 0 aslında bir anahtar olduğunu bilirdin.

$myarray = array("key" => "value", 1 => "one");

Bu anahtar tanımlı değil çünkü $myarray[0] yok. Yalnızca elemanları $myarray['key'] ve $myarray[1], bu dizide mevcuttur. 0 dizi için bir anahtar olarak görülüyor, çünkü dizideki ilk öğe olarak $myarray['key'] başvuru yapamaz ve bu anahtarın tanımlı hiçbir değeri yoktur.

Ancak, PHP's array_values() function değerler dizisini oluşturmak için kullanabilirsiniz (bu temelde anahtarlarını kaldırır) ve bu şekilde onları referans, ama kurabiye ben bu nasıl olacağını görmüyor musun herhangi bir kullanım.

Ben böyle $ _COOKIE [favorim] diziden herhangi bir öğeyi silebilirsiniz:

Hayır - cevap tarayıcıya geri gönderilir zaman mevcut değeri üzerine.

Eğer çerezleri diziden bir öğeyi silmek istiyorsanız bunu:

 unset($_COOKIE['favorites']);

Eğer aynı adı (ve yolu, ve etki alanı) ama geçmişte bir son kullanma tarihi ile cookie kurmak tarayıcınıza çerez silmek istiyorsanız.

Bir çerez arry istemci tarafında gibi bir şey var - HTTP işleri nasıl bir dizi öğe eklemek için PHPs sözdizimi karıştırıyorsun. Sadece tek bir değer - Bu isteği geri geldiğinde, PHP '[] sık' adında bir çerez bir dizi yaratacaktır ama istemci üzerinde böyle bir dizi olduğunu olabilir.

setcookie("favorites[]", "value",  time()+3600); 

neden onun tarafından değiştirilmez 'sık []' adında bir çerez oluşturur:

setcookie("favorites[0]", "", time()+3600*24);  

O dizeye bir tamsayı ekleme (veya katıştırma) tarafından yeni çerezler oluşturur geçerli olacağını rağmen köşeli parantez kullanmaktan kaçınmalısınız.

C.