Re: fatal static call in php 6.0?
| From: | Marcus Boerger | Date: | Mon, 15 May 2006 18:27:14 +0000 |
| Subject: | Re: fatal static call in php 6.0? | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-23397@lists.php.net to get a copy of this message | ||
Hello Todd,
Monday, May 15, 2006, 6:03:14 PM, you wrote:
> On Mon, 2006-05-15 at 06:51 -0400, Greg Beaver wrote:
> ...
>> Side note: calling functions statically that do not have a static
>> modifier causes E_STRICT. Hello PEAR::isError()
>>
>> This is of course going to be a fatal in PHP 6, but it is now the most
>> common E_STRICT I see in PHP4-based code.
> Yikes! Please say it isn't so! There are significant portions of
> our app that rely on php's ability to make "semi-static" calls. It
> would never be worth the cost of upgrading to php6 if that were the
> case.
> It's not the best style, but we have scores of classes that
> have several members in common and need common functionality
> for those members. In php5 and earlier, you can add helper
> classes and call helper functions with the "::" syntax. The
> helper can access all of the members of the main class as if
> it were its own. The "right" thing to do would be to step
> back in the design and move the members to other classes,
> etc., but as practical matter, sometimes that's just not
> worth the effort to make such drastic changes to code that's
> developed by accretion.
> Another use is that we have core data that most classes keep
> in an "$application" member variable. It's sort of like a
> global, but to allow for a couple instances of a class to
> work on different app data, we've taken the member route
> instead of the global route. php is a nice language for this
> in that we don't have to pass $application to every static
> function we call. The static function has access to
> $this->application, because everyone who calls the static
> function has the application member.
> Please don't fatal error this code in php 6!
> Thanks for listening,
> Todd
Ever heared of the concept named root class?