同様の問題があり、仮想マシンを実行したくない (または何らかの理由で実行できない) 人のために、Windows で実行するコードと Linux で実行するコードが異なることになりました。
私が以下を実行したとき:
$m = new Memcache;
print_r(get_class_methods($m));
メソッドがMemcache
ないことに気付きました。_ _AddServers()
Memcached
Memcached
したがって、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);
}