Annotation of embedaddon/php/Zend/tests/bug42819.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #42819 (namespaces in indexes of constant arrays)
                      3: --SKIPIF--
                      4: <?php if (!extension_loaded("spl")) print "skip"; ?>
                      5: --FILE--
                      6: <?php
                      7: namespace foo\foo;
                      8: 
                      9: const C = "foo\\foo\\C\n";
                     10: const I = 12;
                     11: 
                     12: class foo {
                     13: const I = 32;
                     14: const C = "foo\\foo\\foo::C\n";
                     15: }
                     16: 
                     17: namespace foo;
                     18: use \ArrayObject;
                     19: 
                     20: const C = "foo\\C\n";
                     21: const I = 11;
                     22: 
                     23: class foo {
                     24:        const C = "foo\\foo::C\n";
                     25:        const I = 22;
                     26:        const C1 = C;
                     27:        const C2 = foo\C;
                     28:        const C3 = foo\foo::C;
                     29:        const C4 = \foo\C;
                     30:        const C5 = \foo\foo::C;
                     31:        const C6 = ArrayObject::STD_PROP_LIST;
                     32:        const C7 = E_ERROR;
                     33: }
                     34: 
                     35: class bar1 {
                     36:        static $a1 = array(I => 0);
                     37:        static $a2 = array(foo\I => 0);
                     38:        static $a3 = array(foo\foo::I => 0);
                     39:        static $a4 = array(\foo\I => 0);
                     40:        static $a5 = array(\foo\foo::I => 0);
                     41:        static $a6 = array(ArrayObject::STD_PROP_LIST => 0);
                     42:        static $a7 = array(E_ERROR => 0);
                     43: }
                     44: 
                     45: class bar2 {
                     46:        static $a1 = array(I => I);
                     47:        static $a2 = array(foo\I => I);
                     48:        static $a3 = array(foo\foo::I => I);
                     49:        static $a4 = array(\foo\I => I);
                     50:        static $a5 = array(\foo\foo::I => I);
                     51:        static $a6 = array(ArrayObject::STD_PROP_LIST => I);
                     52:        static $a7 = array(E_ERROR => I);
                     53: }
                     54: 
                     55: class bar3 {
                     56:        static $a1 = array(I => foo\I);
                     57:        static $a2 = array(foo\I => foo\I);
                     58:        static $a3 = array(foo\foo::I => foo\I);
                     59:        static $a4 = array(\foo\I => foo\I);
                     60:        static $a5 = array(\foo\foo::I => foo\I);
                     61:        static $a6 = array(ArrayObject::STD_PROP_LIST => foo\I);
                     62:        static $a7 = array(E_ERROR => foo\I);
                     63: }
                     64: 
                     65: class bar4 {
                     66:        static $a1 = array(I => ArrayObject::STD_PROP_LIST);
                     67:        static $a2 = array(foo\I => ArrayObject::STD_PROP_LIST);
                     68:        static $a3 = array(foo\foo::I => ArrayObject::STD_PROP_LIST);
                     69:        static $a4 = array(\foo\I => ArrayObject::STD_PROP_LIST);
                     70:        static $a5 = array(\foo\foo::I => ArrayObject::STD_PROP_LIST);
                     71:        static $a6 = array(ArrayObject::STD_PROP_LIST => ArrayObject::STD_PROP_LIST);
                     72:        static $a7 = array(E_ERROR => ArrayObject::STD_PROP_LIST);
                     73: }
                     74: 
                     75: class bar5 {
                     76:        static $a1 = array(I => E_ERROR);
                     77:        static $a2 = array(foo\I => E_ERROR);
                     78:        static $a3 = array(foo\foo::I => E_ERROR);
                     79:        static $a4 = array(\foo\I => E_ERROR);
                     80:        static $a5 = array(\foo\foo::I => E_ERROR);
                     81:        static $a6 = array(ArrayObject::STD_PROP_LIST => E_ERROR);
                     82:        static $a7 = array(E_ERROR => E_ERROR);
                     83: }
                     84: 
                     85: echo "first\n";
                     86: echo C;
                     87: echo foo\C;
                     88: echo foo\foo::C;
                     89: echo foo::C;
                     90: echo \foo\foo::C;
                     91: echo ArrayObject::STD_PROP_LIST . "\n";
                     92: echo E_ERROR . "\n";
                     93: echo "second\n";
                     94: echo \foo\foo::C1;
                     95: echo \foo\foo::C2;
                     96: echo \foo\foo::C3;
                     97: echo \foo\foo::C4;
                     98: echo \foo\foo::C5;
                     99: echo \foo\foo::C6 . "\n";
                    100: echo \foo\foo::C7 . "\n";
                    101: 
                    102: print_r(bar1::$a1);
                    103: print_r(bar1::$a2);
                    104: print_r(bar1::$a3);
                    105: print_r(bar1::$a4);
                    106: print_r(bar1::$a5);
                    107: print_r(bar1::$a6);
                    108: print_r(bar1::$a7);
                    109: 
                    110: print_r(bar2::$a1);
                    111: print_r(bar2::$a2);
                    112: print_r(bar2::$a3);
                    113: print_r(bar2::$a4);
                    114: print_r(bar2::$a5);
                    115: print_r(bar2::$a6);
                    116: print_r(bar2::$a7);
                    117: 
                    118: print_r(bar3::$a1);
                    119: print_r(bar3::$a2);
                    120: print_r(bar3::$a3);
                    121: print_r(bar3::$a4);
                    122: print_r(bar3::$a5);
                    123: print_r(bar3::$a6);
                    124: print_r(bar3::$a7);
                    125: 
                    126: print_r(bar4::$a1);
                    127: print_r(bar4::$a2);
                    128: print_r(bar4::$a3);
                    129: print_r(bar4::$a4);
                    130: print_r(bar4::$a5);
                    131: print_r(bar4::$a6);
                    132: print_r(bar4::$a7);
                    133: 
                    134: print_r(bar5::$a1);
                    135: print_r(bar5::$a2);
                    136: print_r(bar5::$a3);
                    137: print_r(bar5::$a4);
                    138: print_r(bar5::$a5);
                    139: print_r(bar5::$a6);
                    140: print_r(bar5::$a7);
                    141: function oops($a = array(foo\unknown)){}
                    142: oops();
                    143: ?>
                    144: --EXPECTF--
                    145: first
                    146: foo\C
                    147: foo\foo\C
                    148: foo\foo\foo::C
                    149: foo\foo::C
                    150: foo\foo::C
                    151: 1
                    152: 1
                    153: second
                    154: foo\C
                    155: foo\foo\C
                    156: foo\foo\foo::C
                    157: foo\C
                    158: foo\foo::C
                    159: 1
                    160: 1
                    161: Array
                    162: (
                    163:     [11] => 0
                    164: )
                    165: Array
                    166: (
                    167:     [12] => 0
                    168: )
                    169: Array
                    170: (
                    171:     [32] => 0
                    172: )
                    173: Array
                    174: (
                    175:     [11] => 0
                    176: )
                    177: Array
                    178: (
                    179:     [22] => 0
                    180: )
                    181: Array
                    182: (
                    183:     [1] => 0
                    184: )
                    185: Array
                    186: (
                    187:     [1] => 0
                    188: )
                    189: Array
                    190: (
                    191:     [11] => 11
                    192: )
                    193: Array
                    194: (
                    195:     [12] => 11
                    196: )
                    197: Array
                    198: (
                    199:     [32] => 11
                    200: )
                    201: Array
                    202: (
                    203:     [11] => 11
                    204: )
                    205: Array
                    206: (
                    207:     [22] => 11
                    208: )
                    209: Array
                    210: (
                    211:     [1] => 11
                    212: )
                    213: Array
                    214: (
                    215:     [1] => 11
                    216: )
                    217: Array
                    218: (
                    219:     [11] => 12
                    220: )
                    221: Array
                    222: (
                    223:     [12] => 12
                    224: )
                    225: Array
                    226: (
                    227:     [32] => 12
                    228: )
                    229: Array
                    230: (
                    231:     [11] => 12
                    232: )
                    233: Array
                    234: (
                    235:     [22] => 12
                    236: )
                    237: Array
                    238: (
                    239:     [1] => 12
                    240: )
                    241: Array
                    242: (
                    243:     [1] => 12
                    244: )
                    245: Array
                    246: (
                    247:     [11] => 1
                    248: )
                    249: Array
                    250: (
                    251:     [12] => 1
                    252: )
                    253: Array
                    254: (
                    255:     [32] => 1
                    256: )
                    257: Array
                    258: (
                    259:     [11] => 1
                    260: )
                    261: Array
                    262: (
                    263:     [22] => 1
                    264: )
                    265: Array
                    266: (
                    267:     [1] => 1
                    268: )
                    269: Array
                    270: (
                    271:     [1] => 1
                    272: )
                    273: Array
                    274: (
                    275:     [11] => 1
                    276: )
                    277: Array
                    278: (
                    279:     [12] => 1
                    280: )
                    281: Array
                    282: (
                    283:     [32] => 1
                    284: )
                    285: Array
                    286: (
                    287:     [11] => 1
                    288: )
                    289: Array
                    290: (
                    291:     [22] => 1
                    292: )
                    293: Array
                    294: (
                    295:     [1] => 1
                    296: )
                    297: Array
                    298: (
                    299:     [1] => 1
                    300: )
                    301: 
                    302: Fatal error: Undefined constant 'foo\foo\unknown' in %sbug42819.php on line %d

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>