I may be wrong, but that's exactly what I ended up having to do... but
don't quote me - I'm just learning OOP


-----Original Message-----
From: Randall Perry [mailto:[EMAIL PROTECTED]] 
Sent: Monday, March 11, 2002 6:52 PM
Subject: [PHP] Scope problem in while loop

According to the PHP 4 docs all variables are global unless within a
function. I've got the following test code which should output 2, but
outputs 1. The while loop creates it's own class object (which seems
since it isn't explicitly instantiated by my code; I would think it
cause errors).

The reason I created an object for my variable (actually, I started
with regular strings) is that I've had similar scoping problems in perl,
where variables got out of scope within loops (or even if statements).
perl, declaring an object outside these structures will protect it's
Not so in PHP I see.

Can anyone explain this behavior? Do I have to create functions that
values every time I need a loop that modifies a variable?


class Ccust_data {
    function Cform_data() {
        $this->test = "";

$o = new Ccust_data();
$o->test = 1;

while ($y = 0) {
    global $o->test;
    $o->test = 2;
    $y = 1;


echo "\$o->test = $o->test\n";

Randy Perry
Mac Consulting/Sales

phn                 561.589.6449
mobile email        [EMAIL PROTECTED]

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to