ID:               43538
 Updated by:       [EMAIL PROTECTED]
 Reported By:      warren at transfusionmedia dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         Feature/Change Request
-Operating System: Win XP SP2
+Operating System: *
-PHP Version:      5.2.5
+PHP Version:      *
 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

It returns 1 as that means you have one element.

Anyway this is the expected behavior and used by all our users for
about 10 years now. Changing this will break most PHP applications out
there. Further more the scenarios shown should use is_array() and family
of funtions.


Previous Comments:
------------------------------------------------------------------------

[2008-07-16 00:32:21] [EMAIL PROTECTED]

Seems odd why its coded to return 1 imo, heres a patch against latest
PHP_5_3 cvs that changes this to return false:
http://www.phpfi.com/332583

------------------------------------------------------------------------

[2007-12-08 20:30:47] warren at transfusionmedia dot com

Description:
------------
When doing count($var) where $var is not an array, the return = 1.

The problem is when you're doing a check in your code:

if (count($var) > 0){
  //do something
}

This will evaluate as true if $var is not an array. This is a problem
if you are doing this:

if (count($var) > 0){
    sort($var); // anything that requires $var to be an array
}

If there is anything in that if statement that requires $var to be an
array, there will be a fatal error. I know you can also add an is_array
check in there, but that is non-obvious and shouldn't be necessary.

Really, if $var is not an array, count($var) should return false or
null, or at least a -1

Reproduce code:
---------------
$var = "foo";

if (count($var) > 0){
  sort($var);
} else {
  echo "The value of var is not greater than zero";
}

Expected result:
----------------
The value of var is not greater than zero

Actual result:
--------------
Warning: sort() expects parameter 1 to be array, string given


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=43538&edit=1

Reply via email to