1

我正在运行一个带有 LAMP 设置的 Ubuntu 16.04 LTS VM,它安装了 PHP 7.0。当我运行我的代码时,我收到以下错误:Class 'APCIterator' not found.

我确保我已经安装并启用了 APCu:

$ sudo apt-get install php-apcu // install package
$ sudo phpenmod apcu // enable it

有什么办法可以解决这个问题(不编辑 PHP 代码),还是应该切换回 Ubuntu 14 LTS 并使用 PHP 5?

4

1 回答 1

3

PHP 7 删除了与 APC API 的向后兼容性。除非您使用向后兼容层,否则该类现在称为APCUIterator

$ php -d 'apc.enable_cli=1' -d 'apc.enabled=1' -a
Interactive shell

php > var_dump(ini_get('apc.enabled'));
string(1) "1"
php > var_dump(ini_get('apc.enable_cli'));
string(1) "1"
php > var_dump(function_exists('apcu_fetch'));
bool(true)
php > var_dump(extension_loaded('apcu'));
bool(true)
php > var_dump(class_exists('\APCIterator'));
bool(false)
php > var_dump(class_exists('\APCUIterator'));
bool(true)

请注意,类之间的 API 发生了变化:\APCIterator构造函数使用缓存进行迭代,而\APCUIterator使用模式进行迭代。

于 2016-06-06T18:46:44.670 回答