From:             [EMAIL PROTECTED]
Operating system: i386-redhat-linux-gnu
PHP version:      4.0.6
PHP Bug Type:     Class/Object related
Bug description:  Arrays defined as object properties treat defined constants 
differently.

It appears that using defined constants to index an array within a class
results in different behaviour than arrays defined without.

Within a class, the array treats the constant as a string literal, whereas
in a regular array definition, the constant is properly evaluated.

Which of the two is the "correct" behaviour, and why do they differ between
contexts?  Is there a way to get the results of Situation A in Situation
B?

--(snip)--

<?php


define( 'TEST1', 1 );
define( 'TEST2', 2 );
define( 'TEST3', 3 );


// Situation A
$aTest = array(
           TEST1 => 'TEST1',
           TEST2 => 'TEST2',
           TEST3 => 'TEST3'
              );

print_r( $aTest );

#########################################################################

// Situation B
class Test
{
   var $aTest2 = array(
                  TEST1 => 'TEST1',
                  TEST2 => 'TEST2',
                  TEST3 => 'TEST3'
                      );

}

$oTest = new Test;

print_r( $oTest );

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


-- 
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