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]