Bug #52265 [NEW]: Defaulting a class-function-param to 0 makes an IF see it as true when comparin
| From: | weer1 at gmx dot net | Date: | Tue, 06 Jul 2010 14:42:26 +0000 |
| Subject: | Bug #52265 [NEW]: Defaulting a class-function-param to 0 makes an IF see it as true when comparin | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-152139@lists.php.net to get a copy of this message | ||
From:
Operating system: Linux
PHP version: 5.2.13
Package: Scripting Engine problem
Bug Type: Bug
Bug description:Defaulting a class-function-param to 0 makes an IF see it as true when comparin
Description:
------------
Defaulting a class-function-param to 0 makes an IF see it as true when
comparing it to a string.
function fillSelectBox($selected = 0)
{
$txt = '';
$obj = new RetailerCountry();
$objs = $obj->getAll();
foreach ($objs as $ob)
{
$id = $ob->getAttrib('retailercountry');
$name = $ob->getAttrib('retailercountry');
$txt .= $ob->getAttrib('retailercountry');
echo 'i:'.$id;
echo 's:'.$selected;
if ($id == $selected)
{
$txt .= ' * ';
}
$txt .= '<br>';
}
return $txt;
}
The result for this function is: every word that's displayed gets a star
*.
This changes when I change the input param to $selected = ''.
But did or does PHP every care about this? I don't to do some kind of
strict typing!
Regards
MD
Test script:
---------------
function fillSelectBox($selected = 0)
{
$txt = '';
$obj = new RetailerCountry();
$objs = $obj->getAll();
foreach ($objs as $ob)
{
$id = $ob->getAttrib('retailercountry');
$name = $ob->getAttrib('retailercountry');
$txt .= $ob->getAttrib('retailercountry');
echo 'i:'.$id;
echo 's:'.$selected;
if ($id == $selected)
{
$txt .= ' * ';
}
$txt .= '<br>';
}
return $txt;
}
Expected result:
----------------
The result for this function is: every word that's displayed gets a star
*.
This changes when I change the input param to $selected = ''.
But did or does PHP every care about this? I don't to do some kind of
strict typing!
--
Edit bug report at http://bugs.php.net/bug.php?id=52265&edit=1
--
Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=52265&r=trysnapshot52
Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=52265&r=trysnapshot53
Try a snapshot (trunk): http://bugs.php.net/fix.php?id=52265&r=trysnapshottrunk
Fixed in SVN: http://bugs.php.net/fix.php?id=52265&r=fixed
Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=52265&r=needdocs
Fixed in release: http://bugs.php.net/fix.php?id=52265&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=52265&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=52265&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=52265&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=52265&r=support
Expected behavior: http://bugs.php.net/fix.php?id=52265&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=52265&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=52265&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=52265&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=52265&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=52265&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=52265&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=52265&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=52265&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=52265&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=52265&r=mysqlcfg