I have a rather strange problem. Due to a specific PECL error , I pass var to memcached and it changes. The proposed workaround is to pass $data.''instead $dataand destroy the link. But this will not work for me, because I do not just pass strings to memcached, I pass all data types.
So, I assigned a new type variable $dataPass = $dataand passed $dataPass. But something really strange is happening:
// ...
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) ""
*/
source
share