Если я правильно понимаю ошибку, проблема в том, что расширение memcache изменяет переданное значение напрямую, а не копирует перед выполнением изменений (т. Е. Оно не разделяет значение).
В этом случае это:
$dataPass = $data;
абсолютно ничего не делает, кроме увеличения счетчика ссылок. См. основы подсчета ссылок .
Один из способов принудительного разделения - создать набор ссылок, а затем разбить его:
$data = false; //$data's zval: refcount 1, is_ref 0
$dataPassPre =& $data; //$data/$dataPassPre zval: refcount 2, is_ref 1
//equivalently to below: $dataPass = $dataPassPre;
$dataPass = $data; //$dataPass's zval: has refcount 1, is_ref 0
unset($dataPassPre); //restore $data's zval to refcount 1, is_ref 0
//now pass $dataPass