PHP count() 取得 Array 元素個數 – 效率問題

PHP 的 count() 是這樣用的 int count ( mixed $var [, int $mode = COUNT_NORMAL ] ) 而其對象可以是其實 Object 可以是 Array 也可以是 NULL (一律回傳 0 ) 也可以是其他型態 (一律回傳 1 ) 。

count() 在 PHP 底層的是這樣實作的:

所以,當型態是 Array 時,會呼叫 php_count_recursive() :

在不是 recursive 的情況下,count 的結果就是 zend_hash_num_elements() 的回傳值 cnt ,而這個 function 的實作非常簡單,就是拿出 HashTable 的 nNumOfElements

可以看到 HashTable 的結構:

所以 count() 本身的效率是好的,因為它直接取出 PHP 內部維護的陣列元素個數。

Posted in Programming

Leave a Reply

Your email address will not be published.