apc_delete()
(PECL apc >= 3.0.0)
从用户缓存中删除某个变量
说明
apc_delete(string $key): mixed
从数据存储里删除某个变量。
参数
- $key
$key即是你用apc_store()存储数据时所设定的标记名称。
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
范例
Example #1 A apc_delete()范例
<?php $bar = 'BAR'; apc_store('foo', $bar); apc_delete('foo'); // this is obviously useless in this form ?>
参见
apc_store()
Cache a variable in the data storeapc_fetch()
从缓存中取出存储的变量
To clarify "FALSE on failure", apc_delete on a key that does not exist will return FALSE; in other words, it's not just a test to see if APC works.
Contrary to what's documented here - apc_delete also accepts and array of keys or even an APCIterator object, making batch operations a breeze (tested in version 3.1.3p1): <?php function showCache() { $cachedKeys = new APCIterator('user', '/^MY_APC/', APC_ITER_VALUE); echo "\nkeys in cache\n-------------\n"; foreach ($cachedKeys AS $key => $value) { echo $key . "\n"; } echo "-------------\n"; } apc_add('MY_APC_TESTA_1','1'); apc_add('MY_APC_TESTA_2','2'); apc_add('MY_APC_TESTA_3','3'); apc_add('MY_APC_TESTB_4','4'); apc_add('MY_APC_TESTB_5','5'); apc_add('MY_APC_TESTB_6','6'); showCache(); /* outputs: keys in cache ------------- MY_APC_TESTB_4 MY_APC_TESTB_5 MY_APC_TESTB_6 MY_APC_TESTA_1 MY_APC_TESTA_2 MY_APC_TESTA_3 ------------- */ // delete all keys beginning with a regex match on MY_APC_TESTA $toDelete = new APCIterator('user', '/^MY_APC_TESTA/', APC_ITER_VALUE); var_dump( apc_delete($toDelete) ); // returns boolean true|false on success or failure showCache(); /* outputs: boolean true keys in cache ------------- MY_APC_TESTB_4 MY_APC_TESTB_5 MY_APC_TESTB_6 ------------- */ // explicitly delete an array of keys var_dump( apc_delete( array('MY_APC_TESTB_4','MY_APC_TESTB_5','MY_APC_NOT_EXISTS')) ); // returns an array of keys that where not found/removed from the cache showCache(); /* outputs: array 0 => string 'MY_APC_NOT_EXISTS' (length=17) keys in cache ------------- MY_APC_TESTB_6 ------------- */ // delete a single key var_dump( apc_delete('MY_APC_TESTB_6') ); // returns boolean true|false on success or failure showCache(); /* outputs: boolean true keys in cache ------------- ------------- */ ?>
To clear out the whole APC user cache: <?php $info = apc_cache_info("user"); foreach ($info['cache_list'] as $obj) { apc_delete($obj['info']); print 'Deleted: ' . $obj['info'] . PHP_EOL; } ?>