Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:23371 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 96767 invoked by uid 1010); 15 May 2006 16:03:41 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 96750 invoked from network); 15 May 2006 16:03:41 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 May 2006 16:03:41 -0000 X-PHP-List-Original-Sender: truth@proposaltech.com X-Host-Fingerprint: 68.142.198.209 smtp110.sbc.mail.mud.yahoo.com Received: from ([68.142.198.209:37229] helo=smtp110.sbc.mail.mud.yahoo.com) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id E4/0F-19568-B56A8644 for ; Mon, 15 May 2006 12:03:40 -0400 Received: (qmail 20799 invoked from network); 15 May 2006 16:03:31 -0000 Received: from unknown (HELO ?192.168.2.101?) (toddruth@sbcglobal.net@69.109.156.212 with login) by smtp110.sbc.mail.mud.yahoo.com with SMTP; 15 May 2006 16:03:30 -0000 Reply-To: truth@proposaltech.com To: internals@lists.php.net In-Reply-To: <44685D24.2000801@php.net> References: <138663365.20060514205903@marcus-boerger.de> <038d01c676f8$ab9b3380$6602a8c0@foxbox> <44685D24.2000801@php.net> Content-Type: text/plain Date: Mon, 15 May 2006 09:03:14 -0700 Message-ID: <1147708994.14148.23.camel@notebook.local> Mime-Version: 1.0 X-Mailer: Evolution 2.4.0 Content-Transfer-Encoding: 7bit Subject: fatal static call in php 6.0? From: truth@proposaltech.com (Todd Ruth) 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