Bug #68936 [NEW]: If class uses trait, it is not loaded after any global code that precedes it

From: Date: Wed, 28 Jan 2015 17:44:16 +0000
Subject: Bug #68936 [NEW]: If class uses trait, it is not loaded after any global code that precedes it
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-190278@lists.php.net to get a copy of this message
From: jevgenijs at zini dot lv Operating system: Linux PHP version: 5.5.21 Package: Class/Object related Bug Type: Bug Bug description:If class uses trait, it is not loaded after any global code that precedes it Description: ------------ Normally, if file c.php contains class definition, the class is loaded before any global code in file c.php is executed. However, it is not true if class uses trait. If I remove "use C;" from the example below, the code passes. Test script: --------------- ==== ./a.php ==== <?php require_once 'c.php'; ==== ./c.php ==== <?php require_once 'b.php'; trait C {} class A { use C; } ==== ./b.php ==== <?php require_once 'c.php'; class B extends A{} php -f a.php Expected result: ---------------- no error Actual result: -------------- PHP Fatal error: Class 'A' not found in /www/htdocs/www.zini.lv/develjonas/tmp/b.php on line 3 -- Edit bug report at https://bugs.php.net/bug.php?id=68936&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=68936&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=68936&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=68936&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=68936&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=68936&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=68936&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=68936&r=needscript Try newer version: https://bugs.php.net/fix.php?id=68936&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=68936&r=support Expected behavior: https://bugs.php.net/fix.php?id=68936&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=68936&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=68936&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=68936&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=68936&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=68936&r=dst IIS Stability: https://bugs.php.net/fix.php?id=68936&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=68936&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=68936&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=68936&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=68936&r=mysqlcfg

« previous php.bugs (#190278) next »