• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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
    ?>
    

    参见

    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;
    }
    ?>
    

    上篇:apc_delete_file()

    下篇:apc_exists()