Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:18848 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 73609 invoked by uid 1010); 13 Sep 2005 23:00:30 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 73594 invoked from network); 13 Sep 2005 23:00:30 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 13 Sep 2005 23:00:30 -0000 Received: from ([127.0.0.1:17652]) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with ECSTREAM id 39/24-41173-D0A57234 for ; Tue, 13 Sep 2005 19:00:29 -0400 X-Host-Fingerprint: 220.245.213.234 220-245-213-234-act.tpgi.com.au Received: from ([220.245.213.234:15480] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id B0/E3-41173-75757234 for ; Tue, 13 Sep 2005 18:48:55 -0400 Message-ID: To: internals@lists.php.net Date: Wed, 14 Sep 2005 08:48:34 +1000 User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Posted-By: 220.245.213.234 Subject: Reference handling change and PHP 4.4.0 From: colin@encode.net.au (Colin Tucker) Hello all, I know this issue has most likely been discussed to death here so I apologise in advance for starting a new thread about it. I just need to get my head around the reasoning for introducing this change to PHP4 (4.4 branch). I can understand making the change to PHP5, but can someone bring me up to speed as to why it was done to PHP4? As I'm sure you're aware, it breaks heaps and heaps of existing code out there. We found this out the hard way yesterday when our server administrator upgraded our production server to PHP 4.4.0 (even though the Debian package description said it was a PHP 4.3.x release). We ended up with hundreds of errors and many, many vhosts stopped working correctly due to "variable references should be returned by reference" problems, both in my code and in third-party code, such as PHPBB instances. And now I read that this will not be "fixed" in future PHP4 releases due to breaking backwards compatibility? I just don't understand... a change that breaks backwards compatibility in a large portion of the existing PHP4 code base will not be fixed because it breaks backwards compatibility? It's doing my head in, please can someone explain? This means that either we have to (potentially) change thousands of lines of code and upgrade many instances of third-party PHP-based sites just to use PHP 4.4.0 and above, or miss out on using this and future PHP4 releases and any security vulnerability fixes they may include. Why could the change not be made optional by using a php.ini directive? Kind regards, Colin.