mirror of
https://github.com/php/php-src.git
synced 2024-11-30 21:35:36 +08:00
Promote count() warning to TypeError
Closes GH-6180
This commit is contained in:
parent
5a085777b7
commit
2ee7e2982f
@ -9,10 +9,10 @@ $gen = gen();
|
||||
|
||||
try {
|
||||
count($gen);
|
||||
} catch (Exception $e) {
|
||||
echo $e;
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage(), PHP_EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, Generator given in %s on line %d
|
||||
--EXPECT--
|
||||
count(): Argument #1 ($var) must be of type Countable|array, Generator given
|
||||
|
@ -8883,6 +8883,7 @@ ZEND_VM_COLD_CONST_HANDLER(190, ZEND_COUNT, CONST|TMPVAR|CV, UNUSED)
|
||||
|
||||
SAVE_OPLINE();
|
||||
op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R);
|
||||
|
||||
while (1) {
|
||||
if (Z_TYPE_P(op1) == IS_ARRAY) {
|
||||
count = zend_array_count(Z_ARRVAL_P(op1));
|
||||
@ -8911,20 +8912,15 @@ ZEND_VM_COLD_CONST_HANDLER(190, ZEND_COUNT, CONST|TMPVAR|CV, UNUSED)
|
||||
break;
|
||||
}
|
||||
|
||||
/* If There's no handler and it doesn't implement Countable then add a warning */
|
||||
count = 1;
|
||||
/* If There's no handler and it doesn't implement Countable then emit a TypeError */
|
||||
} else if ((OP1_TYPE & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) {
|
||||
op1 = Z_REFVAL_P(op1);
|
||||
continue;
|
||||
} else if (Z_TYPE_P(op1) <= IS_NULL) {
|
||||
if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
count = 0;
|
||||
} else {
|
||||
count = 1;
|
||||
} else if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
zend_error(E_WARNING, "%s(): Argument #1 ($var) must be of type Countable|array, %s given", opline->extended_value ? "sizeof" : "count", zend_zval_type_name(op1));
|
||||
count = 0;
|
||||
zend_type_error("%s(): Argument #1 ($var) must be of type Countable|array, %s given", opline->extended_value ? "sizeof" : "count", zend_zval_type_name(op1));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -10324,6 +10324,7 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_CONST_
|
||||
|
||||
SAVE_OPLINE();
|
||||
op1 = RT_CONSTANT(opline, opline->op1);
|
||||
|
||||
while (1) {
|
||||
if (Z_TYPE_P(op1) == IS_ARRAY) {
|
||||
count = zend_array_count(Z_ARRVAL_P(op1));
|
||||
@ -10352,20 +10353,15 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_CONST_
|
||||
break;
|
||||
}
|
||||
|
||||
/* If There's no handler and it doesn't implement Countable then add a warning */
|
||||
count = 1;
|
||||
/* If There's no handler and it doesn't implement Countable then emit a TypeError */
|
||||
} else if ((IS_CONST & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) {
|
||||
op1 = Z_REFVAL_P(op1);
|
||||
continue;
|
||||
} else if (Z_TYPE_P(op1) <= IS_NULL) {
|
||||
if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
count = 0;
|
||||
} else {
|
||||
count = 1;
|
||||
} else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
zend_error(E_WARNING, "%s(): Argument #1 ($var) must be of type Countable|array, %s given", opline->extended_value ? "sizeof" : "count", zend_zval_type_name(op1));
|
||||
count = 0;
|
||||
zend_type_error("%s(): Argument #1 ($var) must be of type Countable|array, %s given", opline->extended_value ? "sizeof" : "count", zend_zval_type_name(op1));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -17567,6 +17563,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_TMPVAR_UNUSED_HANDL
|
||||
|
||||
SAVE_OPLINE();
|
||||
op1 = _get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC);
|
||||
|
||||
while (1) {
|
||||
if (Z_TYPE_P(op1) == IS_ARRAY) {
|
||||
count = zend_array_count(Z_ARRVAL_P(op1));
|
||||
@ -17595,20 +17592,15 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_TMPVAR_UNUSED_HANDL
|
||||
break;
|
||||
}
|
||||
|
||||
/* If There's no handler and it doesn't implement Countable then add a warning */
|
||||
count = 1;
|
||||
/* If There's no handler and it doesn't implement Countable then emit a TypeError */
|
||||
} else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) {
|
||||
op1 = Z_REFVAL_P(op1);
|
||||
continue;
|
||||
} else if (Z_TYPE_P(op1) <= IS_NULL) {
|
||||
if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
count = 0;
|
||||
} else {
|
||||
count = 1;
|
||||
} else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
zend_error(E_WARNING, "%s(): Argument #1 ($var) must be of type Countable|array, %s given", opline->extended_value ? "sizeof" : "count", zend_zval_type_name(op1));
|
||||
count = 0;
|
||||
zend_type_error("%s(): Argument #1 ($var) must be of type Countable|array, %s given", opline->extended_value ? "sizeof" : "count", zend_zval_type_name(op1));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -47327,6 +47319,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_CV_UNUSED_HANDLER(Z
|
||||
|
||||
SAVE_OPLINE();
|
||||
op1 = EX_VAR(opline->op1.var);
|
||||
|
||||
while (1) {
|
||||
if (Z_TYPE_P(op1) == IS_ARRAY) {
|
||||
count = zend_array_count(Z_ARRVAL_P(op1));
|
||||
@ -47355,20 +47348,15 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_CV_UNUSED_HANDLER(Z
|
||||
break;
|
||||
}
|
||||
|
||||
/* If There's no handler and it doesn't implement Countable then add a warning */
|
||||
count = 1;
|
||||
/* If There's no handler and it doesn't implement Countable then emit a TypeError */
|
||||
} else if ((IS_CV & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) {
|
||||
op1 = Z_REFVAL_P(op1);
|
||||
continue;
|
||||
} else if (Z_TYPE_P(op1) <= IS_NULL) {
|
||||
if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
count = 0;
|
||||
} else {
|
||||
count = 1;
|
||||
} else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
|
||||
ZVAL_UNDEFINED_OP1();
|
||||
}
|
||||
zend_error(E_WARNING, "%s(): Argument #1 ($var) must be of type Countable|array, %s given", opline->extended_value ? "sizeof" : "count", zend_zval_type_name(op1));
|
||||
count = 0;
|
||||
zend_type_error("%s(): Argument #1 ($var) must be of type Countable|array, %s given", opline->extended_value ? "sizeof" : "count", zend_zval_type_name(op1));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -740,11 +740,6 @@ PHP_FUNCTION(count)
|
||||
}
|
||||
|
||||
switch (Z_TYPE_P(array)) {
|
||||
case IS_NULL:
|
||||
/* Intentionally not converted to an exception */
|
||||
php_error_docref(NULL, E_WARNING, "%s(): Argument #1 ($var) must be of type Countable|array, %s given", get_active_function_name(), zend_zval_type_name(array));
|
||||
RETURN_LONG(0);
|
||||
break;
|
||||
case IS_ARRAY:
|
||||
if (mode != COUNT_RECURSIVE) {
|
||||
cnt = zend_array_count(Z_ARRVAL_P(array));
|
||||
@ -774,18 +769,11 @@ PHP_FUNCTION(count)
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* If There's no handler and it doesn't implement Countable then add a warning */
|
||||
/* Intentionally not converted to an exception */
|
||||
php_error_docref(NULL, E_WARNING, "%s(): Argument #1 ($var) must be of type Countable|array, %s given", get_active_function_name(), zend_zval_type_name(array));
|
||||
RETURN_LONG(1);
|
||||
break;
|
||||
}
|
||||
/* fallthrough */
|
||||
default:
|
||||
/* Intentionally not converted to an exception */
|
||||
php_error_docref(NULL, E_WARNING, "%s(): Argument #1 ($var) must be of type Countable|array, %s given", get_active_function_name(), zend_zval_type_name(array));
|
||||
RETURN_LONG(1);
|
||||
break;
|
||||
zend_argument_type_error(1, "must be of type Countable|array, %s given", zend_zval_type_name(array));
|
||||
RETURN_THROWS();
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
@ -3,40 +3,54 @@ Only arrays and countable objects can be counted
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$result = count(null);
|
||||
var_dump($result);
|
||||
try {
|
||||
$result = count(null);
|
||||
var_dump($result);
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
$result = count("string");
|
||||
var_dump($result);
|
||||
try {
|
||||
$result = count("string");
|
||||
var_dump($result);
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
$result = count(123);
|
||||
var_dump($result);
|
||||
try {
|
||||
$result = count(123);
|
||||
var_dump($result);
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
$result = count(true);
|
||||
var_dump($result);
|
||||
try {
|
||||
$result = count(true);
|
||||
var_dump($result);
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
$result = count(false);
|
||||
var_dump($result);
|
||||
try {
|
||||
$result = count(false);
|
||||
var_dump($result);
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
$result = count((object) []);
|
||||
var_dump($result);
|
||||
try {
|
||||
$result = count((object) []);
|
||||
var_dump($result);
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
--EXPECT--
|
||||
count(): Argument #1 ($var) must be of type Countable|array, null given
|
||||
count(): Argument #1 ($var) must be of type Countable|array, string given
|
||||
count(): Argument #1 ($var) must be of type Countable|array, int given
|
||||
count(): Argument #1 ($var) must be of type Countable|array, bool given
|
||||
count(): Argument #1 ($var) must be of type Countable|array, bool given
|
||||
count(): Argument #1 ($var) must be of type Countable|array, stdClass given
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, stdClass given in %s on line %d
|
||||
int(1)
|
||||
|
@ -3,10 +3,6 @@ Test count() function
|
||||
--FILE--
|
||||
<?php
|
||||
echo "*** Testing basic functionality of count() function ***\n";
|
||||
print "-- Testing NULL --\n";
|
||||
$arr = NULL;
|
||||
print "COUNT_NORMAL: should be 0, is ".count($arr, COUNT_NORMAL)."\n";
|
||||
print "COUNT_RECURSIVE: should be 0, is ".count($arr, COUNT_RECURSIVE)."\n";
|
||||
|
||||
print "-- Testing arrays --\n";
|
||||
$arr = array(1, array(3, 4, array(6, array(8))));
|
||||
@ -18,12 +14,7 @@ $arr = array("a" => 1, "b" => 2, array("c" => 3, array("d" => 5)));
|
||||
print "COUNT_NORMAL: should be 3, is ".count($arr, COUNT_NORMAL)."\n";
|
||||
print "COUNT_RECURSIVE: should be 6, is ".count($arr, COUNT_RECURSIVE)."\n";
|
||||
|
||||
print "-- Testing strings --\n";
|
||||
print "COUNT_NORMAL: should be 1, is ".count("string", COUNT_NORMAL)."\n";
|
||||
print "COUNT_RECURSIVE: should be 1, is ".count("string", COUNT_RECURSIVE)."\n";
|
||||
|
||||
print "-- Testing various types with no second argument --\n";
|
||||
print "COUNT_NORMAL: should be 1, is ".count("string")."\n";
|
||||
print "COUNT_NORMAL: should be 2, is ".count(array("a", array("b")))."\n";
|
||||
|
||||
$arr = array('a'=>array(NULL, NULL, NULL), 1=>array(NULL=>1, 1=>NULL),
|
||||
@ -56,18 +47,6 @@ foreach ($count_array as $count_value) {
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
/* Testing count() by passing constant with no second argument */
|
||||
print "\n-- Testing count() on constants with no second argument --\n";
|
||||
print "COUNT_NORMAL: should be 1, is ".count(100)."\n";
|
||||
print "COUNT_NORMAL: should be 1, is ".count(-23.45)."\n";
|
||||
|
||||
print "\n-- Testing count() on NULL and Unset variables --\n";
|
||||
print "COUNT_NORMAL: should be 0, is ".count(NULL)."\n";
|
||||
print "COUNT_NORMAL: should be 1, is ".count("")."\n";
|
||||
print "COUNT_NORMAL: should be 0, is ".@count($a)."\n";
|
||||
|
||||
|
||||
print "\n-- Testing count() on an empty sub-array --\n";
|
||||
$arr = array(1, array(3, 4, array()));
|
||||
print "COUNT_NORMAL: should be 2, is ".count($arr, COUNT_NORMAL)."\n";
|
||||
@ -111,30 +90,13 @@ closedir( $resource2 );
|
||||
?>
|
||||
--EXPECTF--
|
||||
*** Testing basic functionality of count() function ***
|
||||
-- Testing NULL --
|
||||
|
||||
Warning: count(): count(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
COUNT_NORMAL: should be 0, is 0
|
||||
|
||||
Warning: count(): count(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
COUNT_RECURSIVE: should be 0, is 0
|
||||
-- Testing arrays --
|
||||
COUNT_NORMAL: should be 2, is 2
|
||||
COUNT_RECURSIVE: should be 8, is 8
|
||||
-- Testing hashes --
|
||||
COUNT_NORMAL: should be 3, is 3
|
||||
COUNT_RECURSIVE: should be 6, is 6
|
||||
-- Testing strings --
|
||||
|
||||
Warning: count(): count(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
COUNT_NORMAL: should be 1, is 1
|
||||
|
||||
Warning: count(): count(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
COUNT_RECURSIVE: should be 1, is 1
|
||||
-- Testing various types with no second argument --
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
COUNT_NORMAL: should be 1, is 1
|
||||
COUNT_NORMAL: should be 2, is 2
|
||||
-- Testing really cool arrays --
|
||||
COUNT_NORMAL: should be 3, is 3
|
||||
@ -173,23 +135,6 @@ COUNT_RECURSIVE is 6
|
||||
COUNT_NORMAL is 4
|
||||
COUNT_RECURSIVE is 7
|
||||
|
||||
-- Testing count() on constants with no second argument --
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
COUNT_NORMAL: should be 1, is 1
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
COUNT_NORMAL: should be 1, is 1
|
||||
|
||||
-- Testing count() on NULL and Unset variables --
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
COUNT_NORMAL: should be 0, is 0
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
COUNT_NORMAL: should be 1, is 1
|
||||
COUNT_NORMAL: should be 0, is 0
|
||||
|
||||
-- Testing count() on an empty sub-array --
|
||||
COUNT_NORMAL: should be 2, is 2
|
||||
COUNT_RECURSIVE: should be 5, is 5
|
||||
|
@ -1,65 +0,0 @@
|
||||
--TEST--
|
||||
Test sizeof() function : basic functionality - for scalar types
|
||||
--FILE--
|
||||
<?php
|
||||
/* Testing the sizeof() for some of the scalar types(integer, float) values
|
||||
* in default, COUNT_NORMAL and COUNT_RECURSIVE modes.
|
||||
*/
|
||||
|
||||
echo "*** Testing sizeof() : basic functionality ***\n";
|
||||
|
||||
$intval = 10;
|
||||
$floatval = 10.5;
|
||||
$stringval = "String";
|
||||
|
||||
echo "-- Testing sizeof() for integer type in default, COUNT_NORMAL and COUNT_RECURSIVE modes --\n";
|
||||
echo "default mode: ";
|
||||
var_dump( sizeof($intval) );
|
||||
echo "\n";
|
||||
echo "COUNT_NORMAL mode: ";
|
||||
var_dump( sizeof($intval, COUNT_NORMAL) );
|
||||
echo "\n";
|
||||
echo "COUNT_RECURSIVE mode: ";
|
||||
var_dump( sizeof($intval, COUNT_RECURSIVE) );
|
||||
echo "\n";
|
||||
|
||||
echo "-- Testing sizeof() for float type in default, COUNT_NORMAL and COUNT_RECURSIVE modes --\n";
|
||||
echo "default mode: ";
|
||||
var_dump( sizeof($floatval) );
|
||||
echo "\n";
|
||||
echo "COUNT_NORMAL mode: ";
|
||||
var_dump( sizeof($floatval, COUNT_NORMAL) );
|
||||
echo "\n";
|
||||
echo "COUNT_RECURSIVE mode: ";
|
||||
var_dump( sizeof($floatval, COUNT_RECURSIVE) );
|
||||
|
||||
echo "Done";
|
||||
?>
|
||||
--EXPECTF--
|
||||
*** Testing sizeof() : basic functionality ***
|
||||
-- Testing sizeof() for integer type in default, COUNT_NORMAL and COUNT_RECURSIVE modes --
|
||||
default mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Testing sizeof() for float type in default, COUNT_NORMAL and COUNT_RECURSIVE modes --
|
||||
default mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
Done
|
@ -74,88 +74,52 @@ for($i = 0; $i < count($objects); $i++)
|
||||
$var = $objects[$i];
|
||||
|
||||
echo "Default Mode: ";
|
||||
var_dump( sizeof($var) );
|
||||
echo "\n";
|
||||
try {
|
||||
var_dump( sizeof($var) );
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
echo "COUNT_NORMAL Mode: ";
|
||||
var_dump( sizeof($var, COUNT_NORMAL) );
|
||||
echo "\n";
|
||||
try {
|
||||
var_dump( sizeof($var, COUNT_NORMAL) );
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
echo "COUNT_RECURSIVE Mode: ";
|
||||
var_dump( sizeof($var, COUNT_RECURSIVE) );
|
||||
echo "\n";
|
||||
try {
|
||||
var_dump( sizeof($var, COUNT_RECURSIVE) );
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
$counter++;
|
||||
}
|
||||
|
||||
echo "Done";
|
||||
?>
|
||||
--EXPECTF--
|
||||
--EXPECT--
|
||||
*** Testing sizeof() : object functionality ***
|
||||
--- Testing sizeof() with objects which doesn't implement Countable interface ---
|
||||
-- Iteration 1 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, test given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, test given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, test given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Default Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test given
|
||||
COUNT_NORMAL Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test given
|
||||
COUNT_RECURSIVE Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test given
|
||||
-- Iteration 2 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, test1 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, test1 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, test1 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Default Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test1 given
|
||||
COUNT_NORMAL Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test1 given
|
||||
COUNT_RECURSIVE Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test1 given
|
||||
-- Iteration 3 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, test2 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, test2 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, test2 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Default Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test2 given
|
||||
COUNT_NORMAL Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test2 given
|
||||
COUNT_RECURSIVE Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, test2 given
|
||||
-- Iteration 4 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, child_test2 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, child_test2 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, child_test2 given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Default Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, child_test2 given
|
||||
COUNT_NORMAL Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, child_test2 given
|
||||
COUNT_RECURSIVE Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, child_test2 given
|
||||
-- Iteration 5 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, concrete_class given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, concrete_class given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, concrete_class given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Default Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, concrete_class given
|
||||
COUNT_NORMAL Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, concrete_class given
|
||||
COUNT_RECURSIVE Mode: sizeof(): Argument #1 ($var) must be of type Countable|array, concrete_class given
|
||||
Done
|
||||
|
@ -1,322 +0,0 @@
|
||||
--TEST--
|
||||
Test sizeof() function : usage variations - for all scalar types and resource variable
|
||||
--FILE--
|
||||
<?php
|
||||
echo "*** Testing sizeof() : usage variations ***\n";
|
||||
|
||||
echo "--- Testing sizeof() for all scalar types in default,COUNT_NORMAL and COUNT_RECURSIVE mode ---\n";
|
||||
// get a resource variable
|
||||
$fp = fopen(__FILE__, "r");
|
||||
|
||||
// array containing all scalar types
|
||||
$values = array (
|
||||
// int values
|
||||
/* 1 */ 0,
|
||||
1,
|
||||
|
||||
// float values
|
||||
/* 3 */ 10.5,
|
||||
-10.5,
|
||||
12.3456789000e10,
|
||||
12.3456789000E-10,
|
||||
/* 7 */ .5,
|
||||
|
||||
// NULL values
|
||||
/* 8 */ NULL,
|
||||
null,
|
||||
|
||||
// boolean values
|
||||
/* 10 */ TRUE,
|
||||
FALSE,
|
||||
true,
|
||||
/* 13 */ false,
|
||||
|
||||
// string data
|
||||
/* 14 */ "",
|
||||
'',
|
||||
"string",
|
||||
/* 17 */ 'string',
|
||||
|
||||
// undefined variable
|
||||
@$undefined_var,
|
||||
|
||||
// resource variable
|
||||
/* 19 */ $fp
|
||||
);
|
||||
|
||||
// loop through the each value of the array for 'var' argument and check the behaviour of sizeof()
|
||||
$counter = 1;
|
||||
for($i = 0; $i < count($values); $i++)
|
||||
{
|
||||
echo "-- Iteration $counter --\n";
|
||||
|
||||
$var = $values[$i];
|
||||
|
||||
echo "Default Mode: ";
|
||||
var_dump( sizeof($var) );
|
||||
echo "\n";
|
||||
|
||||
echo "COUNT_NORMAL Mode: ";
|
||||
var_dump( sizeof($var, COUNT_NORMAL) );
|
||||
echo "\n";
|
||||
|
||||
echo "COUNT_RECURSIVE Mode: ";
|
||||
var_dump( sizeof($var, COUNT_RECURSIVE) );
|
||||
echo "\n";
|
||||
|
||||
$counter++;
|
||||
}
|
||||
|
||||
echo "Done";
|
||||
?>
|
||||
--EXPECTF--
|
||||
*** Testing sizeof() : usage variations ***
|
||||
--- Testing sizeof() for all scalar types in default,COUNT_NORMAL and COUNT_RECURSIVE mode ---
|
||||
-- Iteration 1 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 2 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, int given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 3 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 4 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 5 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 6 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 7 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, float given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 8 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 9 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 10 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 11 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 12 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 13 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, bool given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 14 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 15 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 16 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 17 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, string given in %s on line %d
|
||||
int(1)
|
||||
|
||||
-- Iteration 18 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 19 --
|
||||
Default Mode:
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, resource given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, resource given in %s on line %d
|
||||
int(1)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, resource given in %s on line %d
|
||||
int(1)
|
||||
|
||||
Done
|
@ -1,463 +0,0 @@
|
||||
--TEST--
|
||||
Test sizeof() function : usage variations - all kinds of unset variables for 'var' argument
|
||||
--FILE--
|
||||
<?php
|
||||
echo "*** Testing sizeof() : usage variations ***\n";
|
||||
|
||||
echo "--- Testing sizeof() for all kinds of unset variables in default, Normal and Recursive Modes ---\n";
|
||||
|
||||
// class declaration
|
||||
class test
|
||||
{
|
||||
public $member1;
|
||||
}
|
||||
|
||||
// get an resource variable
|
||||
$fp = fopen(__FILE__, "r");
|
||||
|
||||
// array containing different types of variables
|
||||
$values = array (
|
||||
// int values
|
||||
/* 1 */ 0,
|
||||
1,
|
||||
// float values
|
||||
/* 3 */ 10.5,
|
||||
-10.5,
|
||||
12.34e3,
|
||||
/* 6 */ 12.34E-3,
|
||||
// string values
|
||||
/* 7 */ "string",
|
||||
'string',
|
||||
"",
|
||||
/* 10 */ '',
|
||||
// NULL values
|
||||
/* 11 */ NULL,
|
||||
null,
|
||||
// Boolean Values
|
||||
/* 12 */ TRUE,
|
||||
true,
|
||||
false,
|
||||
/* 16 */ FALSE,
|
||||
// array values
|
||||
/* 17 */ array(),
|
||||
array(1, 2, 3,4 , array(5, 6)),
|
||||
// object variable
|
||||
/* 19 */ new test(),
|
||||
// resource variable
|
||||
/* 20 */ $fp
|
||||
);
|
||||
|
||||
// loop through the each element of the $values array for 'var' argument
|
||||
// and check the functionality of sizeof()
|
||||
$counter = 1;
|
||||
foreach($values as $value)
|
||||
{
|
||||
echo "-- Iteration $counter --\n";
|
||||
|
||||
// unset the variable
|
||||
unset($value);
|
||||
|
||||
// now check the size of unset variable when different modes are given
|
||||
echo "Default Mode: ";
|
||||
var_dump( sizeof($value) );
|
||||
echo "\n";
|
||||
|
||||
echo "COUNT_NORMAL Mode: ";
|
||||
var_dump( sizeof($value, COUNT_NORMAL) );
|
||||
echo "\n";
|
||||
|
||||
echo "COUNT_RECURSIVE Mode: ";
|
||||
var_dump( sizeof($value, COUNT_RECURSIVE) );
|
||||
echo "\n";
|
||||
|
||||
$counter++;
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
|
||||
echo "Done";
|
||||
?>
|
||||
--EXPECTF--
|
||||
*** Testing sizeof() : usage variations ***
|
||||
--- Testing sizeof() for all kinds of unset variables in default, Normal and Recursive Modes ---
|
||||
-- Iteration 1 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 2 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 3 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 4 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 5 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 6 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 7 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 8 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 9 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 10 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 11 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 12 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 13 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 14 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 15 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 16 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 17 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 18 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 19 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
-- Iteration 20 --
|
||||
Default Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_NORMAL Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
COUNT_RECURSIVE Mode:
|
||||
Warning: Undefined variable $value in %s on line %d
|
||||
|
||||
Warning: sizeof(): sizeof(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
int(0)
|
||||
|
||||
Done
|
@ -16,13 +16,16 @@ if (is_countable($foo)) {
|
||||
|
||||
$bar = null;
|
||||
if (!is_countable($bar)) {
|
||||
count($bar);
|
||||
try {
|
||||
count($bar);
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
--EXPECT--
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
int(2)
|
||||
|
||||
Warning: count(): Argument #1 ($var) must be of type Countable|array, null given in %s on line %d
|
||||
count(): Argument #1 ($var) must be of type Countable|array, null given
|
||||
|
Loading…
Reference in New Issue
Block a user