With MAMP (using PHP 5.3.5 and APC 3.1.7) passing an array with multiple regex strings as $search arg always yields an empty APCIterator. Whereas passing a single string regex works. (Note: I only tried cache type 'user'.)
Workaround: Concatenated all regexes to single one with alternation. Example:
<?php
$results = new APCIterator('user', '/^('.implode('|', $patterns).')');
?>
APCIterator::__construct
(PECL apc >= 3.1.1)
APCIterator::__construct — Constructs an APCIterator iterator object
Description
Constructs an APCIterator object.
Parameters
- cache
-
The cache type, which will be user or file.
- search
-
A PCRE regular expression that matches against APC key names, either as a string for a single regular expression, or as an array of regular expressions. Or, optionally pass in NULL to skip the search.
- format
-
The desired format, as configured with one ore more of the APC_ITER_* constants.
- chunk_size
-
The chunk size. Must be a value greater than 0. The default value is 100.
- list
-
The type to list. Either pass in APC_LIST_ACTIVE or APC_LIST_DELETED.
Return Values
An APCIterator object on success, or NULL on failure.
See Also
- apc_exists() - Checks if APC key exists
- apc_cache_info() - اطلاعات ذخیره شده در کاشه را از ذخیره داده APC بازیابی مینماید.
new APCIterator('file'); only lists the files loaded within the current process-scope. It is thus not possible to check if a given file already resides in the op-code cache.
(PHP5.3.6 APC3.1.9)
Iterating (and specifically using current()) does not expunge cache entries for which $ttl has passed, you need to use apc_fetch to get rid of stale entries.
