#27227 [Opn-Bgs]: Mixed case class names causes Fatal Error in Constructor call
ID: 27227 Updated by: [EMAIL PROTECTED] Reported By: waboring at 3gstech dot com -Status: Open +Status: Bogus Bug Type: Zend Engine 2 problem Operating System: * PHP Version: 5CVS-2004-02-11 Assigned To: helly New Comment: This is different bug (if it even IS a bug) so report it separately and stop reopening already fixed issue. Previous Comments: [2004-02-18 22:23:01] waboring at 3gstech dot com because $c-bTesting() is calling the constructor of the bTesting object. in php4, that cascades to the A class, as it should since the A constructor exists, but the bTesting constructor doesn't. [2004-02-18 21:32:58] [EMAIL PROTECTED] There is no function called bTesting(), so why shouldn't it output an error?? (I'd say it's bug in PHP4 where it magically works..) [2004-02-18 20:32:14] waboring at 3gstech dot com ERR Actually this is a more valid test. sorry ?php class A { function A() { echo __CLASS__.::.__FUNCTION__. called!br\n; } } class bTesting extends A { function blah() { echo __CLASS__.::.__FUNCTION__.() calledbr\n; } } class c extends bTesting { function c() { echo __CLASS__.::.__FUNCTION__.() called!!br\n; $this-bTesting(); } } $obj = new c(); $obj-blah(); ? results in: c::c() called!! Fatal error: Call to undefined method c::bTesting() in /home/waboring/devel/bug.php on line 18 [2004-02-15 19:28:42] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. [2004-02-11 20:33:03] [EMAIL PROTECTED] Works fine with PHP 4 btw. :) (somehow I think this might be one for Marcus to fix..?) The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/27227 -- Edit this bug report at http://bugs.php.net/?id=27227edit=1
#27227 [Opn-Bgs]: Mixed case class names causes Fatal Error in Constructor call
ID: 27227 Updated by: [EMAIL PROTECTED] Reported By: waboring at 3gstech dot com -Status: Open +Status: Bogus Bug Type: Zend Engine 2 problem Operating System: * PHP Version: 5CVS-2004-02-11 Assigned To: helly New Comment: There is no function called bTesting(), so why shouldn't it output an error?? (I'd say it's bug in PHP4 where it magically works..) Previous Comments: [2004-02-18 20:32:14] waboring at 3gstech dot com ERR Actually this is a more valid test. sorry ?php class A { function A() { echo __CLASS__.::.__FUNCTION__. called!br\n; } } class bTesting extends A { function blah() { echo __CLASS__.::.__FUNCTION__.() calledbr\n; } } class c extends bTesting { function c() { echo __CLASS__.::.__FUNCTION__.() called!!br\n; $this-bTesting(); } } $obj = new c(); $obj-blah(); ? results in: c::c() called!! Fatal error: Call to undefined method c::bTesting() in /home/waboring/devel/bug.php on line 18 [2004-02-15 19:28:42] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. [2004-02-11 20:33:03] [EMAIL PROTECTED] Works fine with PHP 4 btw. :) (somehow I think this might be one for Marcus to fix..?) [2004-02-11 19:20:49] waboring at 3gstech dot com Description: I have 3 classes a, b extends a, c extends b. b doesn't have constructor. c class contructor calls b's constructor in an effort to cascade constructor calls up the class heirarchy. This works great until class 'a' is renamed to 'A'. ?php /* This script works as one would expect. The foo class constructor gets called. */ class a { function a() { echo __CLASS__.::.__FUNCTION__. called!br\n; } } class b extends a { function blah() { echo __CLASS__.::.__FUNCTION__.() calledbr\n; } } class c extends b { function c() { echo __CLASS__.::.__FUNCTION__.() called!!br\n; $this-b(); } } $obj = new c(); $obj-blah(); /* Output is c::c() called!! a::a called! b::blah() called */ ? Reproduce code: --- ?php /* Notice that the only thing that is different here is the case of the 'a' class changed to 'A' in all the appropriate places. Now I get a Fatal error saying c::b() doesn't exist? */ class A { function A() { echo __CLASS__.::.__FUNCTION__. called!br\n; } } class b extends A { function blah() { echo __CLASS__.::.__FUNCTION__.() calledbr\n; } } class c extends b { function c() { echo __CLASS__.::.__FUNCTION__.() called!!br\n; $this-b(); //ERROR IN LINE ABOVE } } $obj = new c(); $obj-blah(); /* Output is c::c() called!! Fatal error: Call to undefined method c::b() in /home/waboring/devel/php/oop.php on line 18 */ ? Expected result: I expect that both of the scripts would work the same way. I have many classes that have Mixed case Actual result: -- Fatal error: Call to undefined method c::b() in /home/waboring/devel/php/oop.php on line 18 -- Edit this bug report at http://bugs.php.net/?id=27227edit=1