Re: Bug #16265 Updated: Multiply-defined functions in classes not reported
| From: | brad lafountain | Date: | Tue, 02 Apr 2002 06:55:19 +0000 |
| Subject: | Re: Bug #16265 Updated: Multiply-defined functions in classes not reported | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-82010@lists.php.net to get a copy of this message | ||
This bug is eaisly fixable. This is also something that i have been trying to
push on a couple of threads now. You would need to do 3 things.
1) change the compiler so that inherited objects don't copy the opcodes
of the functions. it will just store the parent's ce.
2) change the executor so it will execute functions recursivly thru the
parents ce's
( i was talking about this change on engine2 list andi was arguing that it
would be slower on execution of a function. I made the changes and it was
faster. See the 'Mulitple Inhertiance' thread on engine2 list. This would also
allow you to inherit overloaded objects defined in c.. ie Java)
3) again change the compiler to test only the current ce for re-definitions of
the defined function. (derick already did this)
So as far as im conserned making this change will solve many problems... But im
really still confused why andi doesn't want this change. I will send my diff if
you want.
- Brad
--- derick@php.net wrote:
> ID: 16265
> Updated by: derick@php.net
> Reported By: dshadow@zort.net
> -Status: Open
> +Status: Suspended
> Bug Type: Scripting Engine problem
> Operating System: Linux
> PHP Version: 4.1.2
> New Comment:
>
> I'm suspending this for now, this issue is not easily solved
> unfortunately. But we keep this on the todo list for future releases.
>
> Derick
>
>
> Previous Comments:
> ------------------------------------------------------------------------
>
> [2002-04-01 21:37:21] yohgaki@php.net
>
> Need to open again.
> This bug may be suspended.
>
> ------------------------------------------------------------------------
>
> [2002-03-25 15:32:48] derick@php.net
>
> Fixed in CVS, will also be in PHP 4.2.0
>
> Derick
>
> ------------------------------------------------------------------------
>
> [2002-03-25 13:12:42] dshadow@zort.net
>
> PHP does not report multiply-defined errors for class member functions.
> For example, the following script below, when executed, only outputs
> "two", with no errors.
>
> Instead, PHP should be giving error messages since the function bar has
> been defined multiple times.
>
> <?
> class foo
> {
> function bar() {echo "one\n";}
> function bar() {echo "two\n";}
> }
>
> $f = new foo();
> $f->bar();
>
> ------------------------------------------------------------------------
>
>
> --
> Edit this bug report at
> http://bugs.php.net/?id=16265&edit=1
>
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://http://taxes.yahoo.com/