ID:               45910
 Updated by:       [EMAIL PROTECTED]
 Reported By:      s dot tretter at szene1 dot at
-Status:           Open
+Status:           Verified
 Bug Type:         Scripting Engine problem
 Operating System: Linux
 PHP Version:      5.3.0alpha1
 New Comment:

Here's a simple script based in your example:

class foo {
        const AAA = 'x';
        const BBB = 'a';
        const CCC = 'a';
        const DDD = self::AAA;

        private static $foo = array(
                self::BBB       => 'a',
                self::CCC       => 'b',
                self::DDD       =>  self::AAA
        );
        
        public static function test() {
                self::$foo;
        }
}

foo::test();

The error is only issued when BBB and CCC contains same value.


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

[2008-08-25 18:34:38] s dot tretter at szene1 dot at

okay here a test script...
<?php
        class Test
        {
                const HOST_SK = 13;

                const NOSHOW = 'n77';

                const CONTENT_AD                = 'n10';
                const CONTENT_AD_MAIN           = 'n5';
                const CONTENT_AD_SALE           = 'n15';
                const SKYSCRAPER                = 'n4';
                const SITEBAR                   = 'n6';
                const BIGSIZE_BANNER            = 'n3';
                const CONTENT_USERPAGE          = self::NOSHOW;

                const HOCKEY1_SKYSCRAPER        = 'n4';
                const HOCKEY2_BIGSIZE_BANNER    = 'n3';

                const SPECIAL_FOTO_SKYSCRAPER   = 'n14';

                private static $host_matching   = array(
                        self::HOST_SK => array(
                                self::CONTENT_AD                       
=> 'n64',
                                self::CONTENT_AD_MAIN                  
=> 'n63',
                                self::CONTENT_AD_SALE                  
=> 'n65',
                                self::SKYSCRAPER                       
=> 'n62',
                                self::SITEBAR                          
=> 'n66',
                                self::BIGSIZE_BANNER                   
=> 'n61',
                                self::HOCKEY1_SKYSCRAPER               
        => 'n62',
                                self::HOCKEY2_BIGSIZE_BANNER           
=> 'n61',
                                self::SPECIAL_FOTO_SKYSCRAPER          
=> 'n67',
                                self::CONTENT_USERPAGE                 
=> self::NOSHOW
                        )
                );

                public static $objects = array();

                public static function addElement($object)
                {
                        self::$objects[] = $object;
                }

}

Test::addElement("socha");
?>

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

[2008-08-25 18:27:52] [EMAIL PROTECTED]

Did I ask you to EMAIL me something? I asked you to provide SHORT
reproducing script and paste it HERE.

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

[2008-08-25 18:16:46] s dot tretter at szene1 dot at

mail with test file sent to [EMAIL PROTECTED]

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

[2008-08-25 18:10:42] s dot tretter at szene1 dot at

Description:
------------
The problem is that the same script worked in php5.2.6, but in php5.3
it results in a "Fatal error: Cannot declare self-referencing constant
'n61' in ..."

There is an array that uses many constants to set the array with
values. If I execute a method of the class this error message stops the
execution..but the line of the code has nothing todo with this array!
strange error... just let me send my test code, u will see it yourself.
If i modify the array, remove the lines that php is complain about,
some lines and so on.. it works.. but these lines are not differnt to
the ohter lines..!? I don't understand it.

Also tried with latest cvs snapshot

Reproduce code:
---------------
I have a test script, but I don't wanna publish the code... May I send
it directly to a php developer?

Expected result:
----------------
like in php5.2.6 this code should work!

Actual result:
--------------
Fatal error: Cannot declare self-referencing constant 'n61' in
/..../test.php on line 132



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


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

Reply via email to