In diesem Artikel wird hauptsächlich die kurze Diskussion zum PHP-Quellcode 16 vorgestellt: Die Funktion array_count_values hat einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf verweisen Eine kurze Diskussion zum PHP-Quellcode 10 Sechs: Über die Funktion array_count_values
array_count_values
(PHP 4, PHP 5)
array_count_values – zählt die Anzahl aller Vorkommen Werte im ArrayErklärung
array array_count_values (Array-Eingabe)
array_count_values() gibt ein Array zurück, das den Wert im Eingabearray als Schlüsselnamen und die verwendet Häufigkeit, mit der der Wert im Eingabearray als Wert angezeigt wird.
Quellprogrammbeschreibung:
Die beiden Kommentare im Quellcode veranschaulichen die Implementierung dieser Funktion/* Initialize return array */ array_init(return_value); /* Go through input array and add values to the return array */
1. Diese Funktion kann nur Zeichenfolgen und Zahlen erkennen, daher verwendet das Programm Anweisungen ähnlich der folgenden:
if (Z_TYPE_PP(entry) == IS_LONG) {} else if (Z_TYPE_PP(entry) == IS_STRING) {} else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can only count STRING and INTEGER values!");}
2. Stellen Sie während des Durchlaufvorgangs zunächst fest, ob diese nicht vorhanden sind. Dieser Beurteilungsprozess basiert auf Zeichenfolgen und Zahlen sind auch unterschiedlich, aber am Ende sind es alle Operationen an der Hash-Tabelle
Im Code verwendet die Initialisierung von zval das Makro zval *data;
Die Definition, dies zu verfolgen Das Makro lautet wie folgt:MAKE_STD_ZVAL(data);==> #define MAKE_STD_ZVAL(zv) \ zend.h 586行 ALLOC_ZVAL(zv); \ INIT_PZVAL(zv); ==> #define ALLOC_ZVAL(z) \ ZEND_FAST_ALLOC(z, zval, ZVAL_CACHE_LIST) zend_alloc.h 165行 ==> #define ZEND_FAST_ALLOC(p, type, fc_type) \ (p) = (type *) emalloc(sizeof(type)) zend_alloc.h 152行 ==> #define emalloc(size) _emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) zend_alloc.h 56行==> ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) zend_alloc.c 2288行 程序实现 ==> #define INIT_PZVAL(z) \ zend.h 576行 (z)->refcount = 1; \ (z)->is_ref = 0;
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Lernen aller hilfreich sein. Bitte achten Sie auf PHP Chinesische Website!
Verwandte Empfehlungen:
Eine kurze Diskussion über PHP-Quellcode 15: Über die Funktion array_walk Eine kurze Diskussion über PHP-Quellcode 14: Über die Funktion array_combineEine kurze Diskussion über PHP-Quellcode 13: Einführung in array_change_key_case, array_chunkDas obige ist der detaillierte Inhalt vonEine kurze Diskussion des PHP-Quellcodes 16: Informationen zur Funktion array_count_values . Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!