从 php7 的某个版本开始(我无法确定具体是哪个版本)。
$cas_token
现在不再是有效的参数。它已被删除,取而代之的是 flags 参数,因为它在对 Memcached 类进行子类化时似乎会导致问题。
有关更多详细信息,请参见 https://github.com/php-memcached-dev/php-memcached/pull/214。
基本上你需要
<?php
function memcacheGet($key, $cb = null, &$cas = null) {
$m = memcacheGetObject();
if(empty($m))
return false;
if(defined('Memcached::GET_EXTENDED')) {
// PHP7 中的不兼容更改,我花了 2 个小时才弄明白,真是太糟糕了
$_o = $m->get($key, $cb, Memcached::GET_EXTENDED);
$o = $_o['value'];
$cas = $_o['cas'];
} else {
$o = $m->get($key, $cb, $cas);
}
return $o;
}
?>