同様の問題があり、仮想マシンを実行したくない (または何らかの理由で実行できない) 人のために、Windows で実行するコードと Linux で実行するコードが異なることになりました。
私が以下を実行したとき:
$m = new Memcache;
print_r(get_class_methods($m));
メソッドがMemcacheないことに気付きました。_ _AddServers()MemcachedMemcached
したがって、Windows (使用する必要がある場合Memcache、利用できないMemcached) の場合、解決策は、複数のサーバーを追加するための独自の短いループを作成することです。
$m = new Memcache();
$servers = array(
array('localhost', 11211),
// ... other servers here
);
foreach ($servers as $s) $m->addServer($s[0], $s[1]);
Windows と Linux の両方のコード セットを利用できるようにする必要がある場合は、常に上記を で囲み、if (PHP_OS == 'WINNT')その後に Linux コードを else ステートメントで配置できます。したがって、次のようなもの:
$servers = array(
array('localhost', 11211),
// ... other servers here
);
if (PHP_OS == 'WINNT') {
$m = new Memcache();
foreach ($servers as $s) $m->addServer($s[0], $s[1]);
}
else {
$m = new Memcached();
$m->addServers($servers);
}