我正在运行带有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?
答案 0 :(得分:3)
PHP 7删除了与APC API的向后兼容性。除非您使用backwards compatibility layer,否则该类现在称为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
采用了迭代的模式。