- Original Message -
From: "Stanislav Malyshev" <[EMAIL PROTECTED]>
To: "Baptiste Autin" <[EMAIL PROTECTED]>
Cc: "'Zoe Slattery'" <[EMAIL PROTECTED]>; "'Dmitry Stogov'"
<[EMAIL PROTECTED]>; "
Do you have any ideas on how to allow this to be at all useful with
inheritance and overriding? If the patch is left to where these examples
would all return 'A' and something wasn't put in place to allow
overloading a static function AND forward on the original called class
What do you mean
From technical point of view it is possible to propagate LSB with self::,
parent::, and static:: and not with CLASS::.
I think it may be a good compromise.
I am very much in favor of this. I think it allows the greatest amount of
control. If you need a specific class's static method called then
Or may be both lines must return "A"? (like Etienne's patches do, and
like
my latest path does)
Yes.
Do you have any ideas on how to allow this to be at all useful with
inheritance and overriding? If the patch is left to where these examples
would all return 'A' and something wasn't put in
There is a serious problem with both of these patches as they are now.
I understand the principal behind
Returning 'A'. But I don't think that it is wise making this change without
providing a way to still allow LSB to work further down an inheritance
structure.
The whole purpose behind lat
- Original Message -
From: "Etienne Kneuss" <[EMAIL PROTECTED]>
To:
Sent: Sunday, September 16, 2007 10:50 AM
Subject: Re: [PHP-DEV] [patch] Late static bindings (LSB)
However this causes a seg fault in your current patch. I will do a little
more checking to see why you are segfault
Since the call A::foo() is completely defined and that no "fall back"
occurs, I guess "A" is more expected as a result of this script.
Your patch will return B. I discussed this matter quite heavily on
#php.pecl and the expectations were also that "A" should get returned
here.
I've taken a look
I almost had a finished another patch myself using EG() but I had to
take a break to pay my bills :/. Thanks for looking at this Dmitry. I
will go ahead and put together a more exhaustive use case for
this over
the weekend.
Would you like to add (modify) something to my patch?
No,
I took a quick glance through it and it mostly makes sense to me. If
anyone could clear up a question when time permits: I don't fully
understand why both executor_globals and and execute_data are used to
store the caller_scope pointer.
I almost had a finished another patch myself using EG() b