Pierre-Alain Joye wrote:

 > On Wed, 31 Oct 2001 08:13:28 +0900 Yasuo Ohgaki 
<[EMAIL PROTECTED]>
 >  wrote:
 >
 >
 >> Yasuo Ohgaki wrote:
 >>
 >>
 >>> Sterling Hughes wrote:
 >>>
 >>>
 >>>> I don't know if this has been discussed yet, but while we're
 >>>>   getting all crazy with breaking compat in 4.1 and/or
 >>>> 5.0, why not go ahead and finally fix empty("0") to
 >>>> return false, like it really should (a string with 0 in
 >>>>  it, is *not* imho an empty string).
 >>>>
 >>>>
 >>> $_POST/$_GET/$_COOKIE data has string type by default. It should
 >>>  return  false for empty("0"), I suppose...
 >>>
 >>
 >> Oops. empty('0'). may return TRUE, since $_POST['var'] has string
 >>   type...
 >>
 > :)) as I said ;). For post better to use !="" or 
isset($_POST['var']);
 >  if the post vars is empty. And "0" is not an empty string,
 > it s a string containing one char (48 ?). If I m not too
 > tired the post methods "post" all var even if they are empty.

I agree and I do it that way. (I use !== '', though)
Since PHP is loosely typed language, it just does not matter much
if empty('0') returns false/true. IMO :)

Users need to be more careful upgrading, if this change is made.
Since assigned vars will have string data type unless value is
casted properly. For example,

function foo($int_val) {
    // Check '0' or ''
    if (empty($int_val)) {
       die('Wrong value');
    }
    else {
       // something useful
    }
}

$bar = $_POST['some_int'];
foo($bar);

I thought it's a kind of mess fixing these kind of codes. IMHO :)
I think returning true for empty('0') is strange, also.

I'm not opposed to this change.
0 for this :)

--
Yasuo Ohgaki



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to