Re: cvs: php4 /ext/standard array.c /ext/standard/tests/array count_recursive.phpt
| From: | Andi Gutmans | Date: | Fri, 11 Jan 2002 10:05:53 +0000 |
| Subject: | Re: cvs: php4 /ext/standard array.c /ext/standard/tests/array count_recursive.phpt | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-9037@lists.php.net to get a copy of this message | ||
At 07:16 AM 1/10/2002 +0100, derick@php.net wrote:
On Wed, 9 Jan 2002, Sterling Hughes wrote:OK so whoever commited it please nuke it :) AndiHmm sounds a bit weird to me but if it's really useful than it's OK :)I have to agree, and its really not that hard to implement in user space::You, I agree too :)
Derickfunction count_recursive($ar) { $total = 0;foreach ($ar as $e => $val) { if (is_array($val)) { $total += count_recursive($val); } else { $total++; } }return $total; }To me its seems like YACFA (Yet another confusing function argument).-SterlingAndi At 06:54 PM 1/9/2002 +0100, derick@php.net wrote:15:59:59 2001On Wed, 9 Jan 2002, Andi Gutmans wrote:To count the nodes in a tree: $ar = array (Why is this useful?"child1" => array ("child2", "child3", "child4"), "child5" => array ("child6", "child7", "child8") );(maybe a louzy example, but you should get the idea :) Dericknuked, isAt 06:50 PM 1/9/2002 +0100, derick@php.net wrote:On Wed, 9 Jan 2002, Andi Gutmans wrote:Was this in 4.1.1?No, only on the 4.2.0 branch. DerickAt 06:49 PM 1/9/2002 +0100, derick@php.net wrote:On Wed, 9 Jan 2002, Andi Gutmans wrote:Isn't this the function we decided to nuke?Nope, that was is_array_multidimensional(). I'll check if it'sphp4/ext/standard/array.c:1.152not, I'll nuke it. DerickAndi At 04:03 PM 1/9/2002 +0000, Derick Rethans wrote:derick Wed Jan 9 11:03:36 2002 EDTModified files:/php4/ext/standard array.c /php4/ext/standard/tests/array count_recursive.phptLog: - Fix bug introduced in earlier patch Index: php4/ext/standard/array.c diff -u php4/ext/standard/array.c:1.151--- php4/ext/standard/array.c:1.151 Sat Dec 29TSRMLS_CC,+----------------------------------------------------------------------++++ php4/ext/standard/array.c Wed Jan 9 11:03:34 2002 @@ -21,7 +21,7 @@*/ -/* $Id: array.c,v 1.151 2001/12/29 20:59:59 derick Exp $ */ +/* $Id: array.c,v 1.152 2002/01/09 16:03:34 derick Exp $ */ #include "php.h" #include "php_ini.h" @@ -260,11 +260,16 @@if (zend_parse_parameters (ZEND_NUM_ARGS()mode));"z|l",&array, &mode) == FAILURE)return;- if (Z_TYPE_P(array) == IS_ARRAY) { - RETURN_LONG (php_count_recursive (array,(array,- } else { - /* return 1 for non-array arguments */ - RETURN_LONG(1); + switch (Z_TYPE_P(array)) { + case IS_NULL: + RETURN_LONG(0); + break; + case IS_ARRAY: + RETURN_LONG (php_count_recursivephp4/ext/standard/tests/array/count_recursive.phpt:1.1mode));+ break; + default: + RETURN_LONG(1); + break; }} /* }}} */ Index: php4/ext/standard/tests/array/count_recursive.phpt diff -uDec 29php4/ext/standard/tests/array/count_recursive.phpt:1.2 ---php4/ext/standard/tests/array/count_recursive.phpt:1.1 Satphp4/ext/standard/tests/array/count_recursive.phpt Wed Jan16:05:03 2001 +++php-list-admin@lists.php.net9COUNT_NORMAL)."\n";11:03:36 2002 @@ -4,6 +4,11 @@ --GET-- --FILE-- <?php +print "Testing NULL...\n"; +$arr = NULL; +print "COUNT_NORMAL: should be 0, is ".count($arr,COUNT_NORMAL)."\n";COUNT_RECURSIVE)."\n";+print "COUNT_RECURSIVE: should be 0, is ".count($arr,+ print "Testing arrays...\n"; $arr = array(1, array(3, 4, array(6, array(8)))); print "COUNT_NORMAL: should be 2, is ".count($arr,php-list-admin@lists.php.netarray("b")))."\n";@@ -23,6 +28,9 @@ print "COUNT_NORMAL: should be 2, is ".count(array("a",?> --EXPECT-- +Testing NULL... +COUNT_NORMAL: should be 0, is 0 +COUNT_RECURSIVE: should be 0, is 0 Testing arrays... COUNT_NORMAL: should be 2, is 2 COUNT_RECURSIVE: should be 8, is 8 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail:php-list-admin@lists.php.net-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail:-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail:-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net