/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvordan virker count()?
Fra : Thomas Lindgaard


Dato : 10-12-03 22:56

Hejsa

Hvordan er count() implementeret nede i maven på PHP? Hvis jeg ønsker at
finde længden af et array i hver iteration af en løkke og til det formål
kalder count() hver gang, bliver mit array så løbet igennem og indgangene
talt eller opretholder PHP løbende en variabel med antallet af indgange?

Med andre ord: Bliver jeg slået i hovedet hvis jeg kalder count() et utal
af gange?

Mvh.
/Thomas

 
 
Peter Brodersen (10-12-2003)
Kommentar
Fra : Peter Brodersen


Dato : 10-12-03 23:17

On Wed, 10 Dec 2003 22:56:13 +0100, "Thomas Lindgaard"
<thomas@it-snedkeren.BLACK_HOLE.dk> wrote:

>Hvordan er count() implementeret nede i maven på PHP?

Ret simpelt. Værdien nNumOfElements ("i maven på PHP") rummer antallet
af elementer. Denne værdi bliver så justeret tilsvarende som der
tilføjes eller fjernes elementer i arrayet. zend_hash.c (som jeg
citerer lidt fra længere nede) har en række eksempler på dette.

Fra kildeteksten til PHP4.1.2 (som jeg lige havde liggende):

ext/standard/array.c :
===
PHP_FUNCTION(count)
{
pval **array;
HashTable *target_hash;

if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &array)
== FAILURE) {
WRONG_PARAM_COUNT;
}
target_hash = HASH_OF(*array);
if (!target_hash) {
if (Z_TYPE_PP(array) == IS_NULL) {
RETURN_LONG(0);
} else {
RETURN_LONG(1);
}
}

RETURN_LONG(zend_hash_num_elements(target_hash));
}
===

Zend/zend_hash.c :
===
ZEND_API int zend_hash_num_elements(HashTable *ht)
{
IS_CONSISTENT(ht);

return ht->nNumOfElements;
}
===

--
- Peter Brodersen

Ugens sprogtip: jamen (og ikke jammen)

Thomas Lindgaard (11-12-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 11-12-03 01:07

On Wed, 10 Dec 2003 23:16:52 +0100, Peter Brodersen wrote:

> Ret simpelt. Værdien nNumOfElements ("i maven på PHP") rummer antallet
> af elementer.

Jamen det er jo dejligt - så kan jeg jo bare kalde count() efter behag :)

Mvh.
/Thomas

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408934
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste