Bug #11589 Updated: classes and includes

From: Date: Thu, 21 Jun 2001 14:51:44 +0000
Subject: Bug #11589 Updated: classes and includes
Groups: php.dev 
Request: Send a blank email to php-dev+get-57537@lists.php.net to get a copy of this message
ID: 11589 Updated by: zeev Reported By: lenar@dotcom.ee Old-Status: Open Status: Closed Bug Type: Scripting Engine problem Operating system: PHP Version: 4.0.5 Assigned To: Comments: This has been fixed in CVS (it will be a part of 4.0.7, 4.0.6 has already been packaged). Thanks for the report! Previous Comments: --------------------------------------------------------------------------- [2001-06-21 08:24:33] lenar@dotcom.ee The bug exists in 4.0.6 RC3 --------------------------------------------------------------------------- [2001-06-20 14:59:26] lenar@dotcom.ee First, my stripped down code that works: <? class a { function make($params) { } } class b extends a { function make() { echo "WORKS OK"; } } class c extends b { function make($params) { parent::make(); } } class d extends c { function make($params) { parent::make($params); } } $d = new d(); $d->make("whatever"); ?> now, when i remove the definition of class 'a' to another file and include the file like this: file1.php: <? class a { function make($params) { } } ?> file2.php: <? include "./file1.php"; // or require - no difference class b extends a { function make() { echo "WORKS OK"; } } class c extends b { function make($params) { // this gets called forever !!!! and generating warnings parent::make(); } } class d extends c { function make($params) { parent::make($params); } } $d = new d(); $d->make("whatever"); ?> then i get message 'Warning: Missing argument 1 for make()' ... the code is same ... but working differently. at least with my php 4.0.5. so i think this is a bug. --------------------------------------------------------------------------- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=11589&edit=2

« previous php.dev (#57537) next »