ID:               17997
 Updated by:       [EMAIL PROTECTED]
 Reported By:      Xuefer at 21cn dot com
 Status:           Verified
 Bug Type:         Scripting Engine problem
 Operating System: All
 PHP Version:      4.3.3RC2-dev 5.0.0b2
 New Comment:

Yes it refetches the variable passed to switch() to check whether it
must be freed or not.


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

[2002-07-23 16:45:31] [EMAIL PROTECTED]

the error message is on the closing '}' of the switch ...
does switch re-evaluate its argument on termination?
this is scary!

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

[2002-06-26 11:25:14] Xuefer at 21cn dot com

let the sample code say the problem
<?
error_reporting(E_ALL);

$str1 = '.........$...';
$str = &$str1;
$l = strlen($str);
for ($i = 0; $i < $l; $i ++)
{
        switch ($str{$i})
        {
        case '$':
                $str = '123'; // change string
                $i = -1; // set to -1, for next loop to be 0
                $l = strlen($str); // u know what this do
                break;

        default:
                echo $str{$i};
        }
}
?>

-----------
result:
-----------
.........
Notice: Uninitialized string offset: 9 in
d:\myfile\wwwroot\our-sky.com\test.php on line 19
123


how ever, if i change
        $str = '123';
to:
        $s = '123';
        $str = &$s;

no wanning

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


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

Reply via email to