Memcached seti yöntemini kullanarak imkansız gibi görünen bir PHP değişkeni davranışını referans

0 Cevap php

Ben oldukça garip bir sorun var. Çünkü bir certain PECL bug, ben memcached içine bir var geçmek ve değişti alır. Önerilen çözüm $data $data.'' yerine geçmek ve bu başvuru yok eder. Ben sadece memcached içine dizeleri geçemiyor çünkü ama bu benim için çalışmaz, ben tüm veri türlerini geçmek.

Yani $dataPass = $data gibi yeni bir değişken atama ve $dataPass geçen sona erdi. Ama gerçekten garip bir şey oluyor:

// ...

var_dump("data 1");
var_dump($data);

$dataPass = $data; // Dereferencing the variable 
                   // because of http://pecl.php.net/bugs/bug.php?id=14239

var_dump("data 2");
var_dump($data);
var_dump("dataPass 2");
var_dump($dataPass);

$this->memcache->set($key, $dataPass, false, time() + $expire);

var_dump("data 3");
var_dump($data);
var_dump("dataPass 3");
var_dump($dataPass);

/*
string(11) "data 1"
bool(false)
string(22) "data 2"
bool(false)
string(26) "dataPass 2"
bool(false)
string(10) "data 3"
string(0) ""                    <--- Why is this not bool(false)?
string(14) "dataPass 3"
string(0) ""
*/

0 Cevap