3acf4c24e2
Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. Its syntax draws upon C, Java, and Perl, and is easy to learn. The main goal of the language is to allow web developers to write dynamically generated webpages quickly, but you can do much more with PHP. WWW: http://www.php.net/ PR: 145772 Submitted by: Alex Keda
33 lines
1.2 KiB
C
33 lines
1.2 KiB
C
--- ext/standard/array.c.orig Mon Feb 12 20:20:48 2007
|
|
+++ ext/standard/array.c Mon Feb 12 20:22:14 2007
|
|
@@ -295,6 +295,7 @@
|
|
PHP_FUNCTION(count)
|
|
{
|
|
zval *array;
|
|
+ zend_class_entry **ce_Countable;
|
|
long mode = COUNT_NORMAL;
|
|
|
|
if (zend_parse_parameters (ZEND_NUM_ARGS() TSRMLS_CC, "z|l", &array, &mode) == FAILURE)
|
|
@@ -308,11 +309,11 @@
|
|
RETURN_LONG (php_count_recursive (array, mode TSRMLS_CC));
|
|
break;
|
|
case IS_OBJECT: {
|
|
-#ifdef HAVE_SPL
|
|
/* it the object implements Countable we call its count() method */
|
|
zval *retval;
|
|
|
|
- if (Z_OBJ_HT_P(array)->get_class_entry && instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
|
|
+ if (zend_lookup_class_ex("Countable", 9, 0, &ce_Countable TSRMLS_CC) != FAILURE) {
|
|
+ if (Z_OBJ_HT_P(array)->get_class_entry && instanceof_function(Z_OBJCE_P(array), *ce_Countable TSRMLS_CC)) {
|
|
zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval);
|
|
if (retval) {
|
|
convert_to_long(retval);
|
|
@@ -321,7 +322,7 @@
|
|
}
|
|
return;
|
|
}
|
|
-#endif
|
|
+ }
|
|
/* if not we return the number of properties (not taking visibility into account) */
|
|
if (Z_OBJ_HT_P(array)->count_elements) {
|
|
RETVAL_LONG(1);
|