<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: PHP 4.4 Minor Gotcha</title>
	<atom:link href="http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/</link>
	<description></description>
	<pubDate>Tue, 14 Oct 2008 00:28:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Lux</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-8843</link>
		<dc:creator>Lux</dc:creator>
		<pubDate>Mon, 19 Sep 2005 15:11:35 +0000</pubDate>
		<guid isPermaLink="false">#comment-8843</guid>
		<description>Actually Mpigulla, I do hope to live with PHP4 for as long as possible, and so do many people.  This follows the sound advise found in the following article on joelonsoftware.com:

&lt;a href="http://www.joelonsoftware.com/articles/APIWar.html" rel="nofollow"&gt;http://www.joelonsoftware.com/articles/APIWar.html&lt;/a&gt;

&lt;blockquote&gt;"And personally I still haven't had time to learn .NET very deeply, and we haven't ported Fog Creek's two applications from classic ASP and Visual Basic 6.0 to .NET because &lt;em&gt;there's no return on investment for us. None.&lt;/em&gt; It's just Fire and Motion as far as I'm concerned: Microsoft would love for me to stop adding new features to our bug tracking software and content management software and instead waste a few months porting it to another programming environment, something which will not benefit a single customer and therefore will not gain us one additional sale, and therefore which is a complete waste of several months, which is great for Microsoft, because they have content management software and bug tracking software, too, so they'd like nothing better than for me to waste time spinning cycles catching up with the flavor du jour, and then waste another year or two doing an Avalon version, too, while they add features to their own competitive software. &lt;em&gt;Riiiight.&lt;/em&gt;"&lt;/blockquote&gt;

Same issue at hand here.  As you said yourself, upgrading to PHP5 is so troublesome because "errors arising from that kind of mistakes are so subtle that often things break not until a lot of lines of code later or you hardly notice that things break at all".  If I move to PHP5, I simply cannot introduce that level of instability on my users.  That would be a support nightmare.

PHP4 has enough OOP features for most uses, the rest is just icing (and Java envy).  PHP4 is also well known and well tested.  Why introduce an unnecessary unknown into the equation?</description>
		<content:encoded><![CDATA[<p>Actually Mpigulla, I do hope to live with PHP4 for as long as possible, and so do many people.  This follows the sound advise found in the following article on joelonsoftware.com:</p>
<p><a href="http://www.joelonsoftware.com/articles/APIWar.html" rel="nofollow">http://www.joelonsoftware.com/articles/APIWar.html</a></p>
<blockquote><p>&#8220;And personally I still haven&#8217;t had time to learn .NET very deeply, and we haven&#8217;t ported Fog Creek&#8217;s two applications from classic ASP and Visual Basic 6.0 to .NET because <em>there&#8217;s no return on investment for us. None.</em> It&#8217;s just Fire and Motion as far as I&#8217;m concerned: Microsoft would love for me to stop adding new features to our bug tracking software and content management software and instead waste a few months porting it to another programming environment, something which will not benefit a single customer and therefore will not gain us one additional sale, and therefore which is a complete waste of several months, which is great for Microsoft, because they have content management software and bug tracking software, too, so they&#8217;d like nothing better than for me to waste time spinning cycles catching up with the flavor du jour, and then waste another year or two doing an Avalon version, too, while they add features to their own competitive software. <em>Riiiight.</em>&#8220;</p></blockquote>
<p>Same issue at hand here.  As you said yourself, upgrading to PHP5 is so troublesome because &#8220;errors arising from that kind of mistakes are so subtle that often things break not until a lot of lines of code later or you hardly notice that things break at all&#8221;.  If I move to PHP5, I simply cannot introduce that level of instability on my users.  That would be a support nightmare.</p>
<p>PHP4 has enough OOP features for most uses, the rest is just icing (and Java envy).  PHP4 is also well known and well tested.  Why introduce an unnecessary unknown into the equation?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: mpigulla</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-8838</link>
		<dc:creator>mpigulla</dc:creator>
		<pubDate>Mon, 19 Sep 2005 09:23:34 +0000</pubDate>
		<guid isPermaLink="false">#comment-8838</guid>
		<description>First, we do agree that "return new somewhat()" in a function and returning that as a reference *was* necessary and the only correct way in PHP4 to achieve the "correct" behaviour. 

Nobody complains about the fix of the memory leak problem, and it seems as if they found a way to work around it so you can still return new... Only it prints the stupid notice in a case where it really should not (again, I just refer to that single case). 

Insisting on the point that "you shouldn't let notices surface on a production system anyway" or "just set the error reporting level to ... &#38; ~E_NOTICE" is simply ignorant.

Now we have a large codebase and target installation systems where it is out of our control wheter 4.3.11 will remain installed (probably nobody will do if they hear "memory leak"), when the switch to 4.4 has been or will be done and what will be with future versions. We also have no influence on the error reporting level (and as to me, I want my app to be coded so well it runs without any notice at all :). 

Furthermore, I could hope the PHP developers will fix the fix and release a 4.4.1 pretty soon - which I think is far from being realistic regarding the unconcerned comments I've read as to this issue. Fix the fix myself? Not possible, again as I have no control of the target systems.

Maybe an automated search-and-replace can "fix" my code to work around the problem. Let alone it would mean to add meaningless code - I am still unsure if there aren't any cases where you would want to "return Factory::build()" to further indirect the creation of an instance; probably that needs a fix, too, and cannot be found that easily.

As to PHP5 - the version your customers run determines the versions you need to support. Either abandon PHP altogether and rewrite in another language. Or go for PHP5 - but you should not hope that you can live with PHP4 forever. Better act now than being urged in a few years. (Too bad that 4.4 is urgent *now* and came so unannounced that it is a real problem to get your priorities right.)

Indeed the migration is a major problem if you wrote OOP code (like we did) right from the start, and the difference between passing references or working with copies requires developers with a sound understanding of the issue. The errors arising from that kind of mistakes are so subtle that often things break not until a lot of lines of code later or you hardly notice that things break at all.

Face it. :)</description>
		<content:encoded><![CDATA[<p>First, we do agree that &#8220;return new somewhat()&#8221; in a function and returning that as a reference *was* necessary and the only correct way in PHP4 to achieve the &#8220;correct&#8221; behaviour. </p>
<p>Nobody complains about the fix of the memory leak problem, and it seems as if they found a way to work around it so you can still return new&#8230; Only it prints the stupid notice in a case where it really should not (again, I just refer to that single case). </p>
<p>Insisting on the point that &#8220;you shouldn&#8217;t let notices surface on a production system anyway&#8221; or &#8220;just set the error reporting level to &#8230; &amp; ~E_NOTICE&#8221; is simply ignorant.</p>
<p>Now we have a large codebase and target installation systems where it is out of our control wheter 4.3.11 will remain installed (probably nobody will do if they hear &#8220;memory leak&#8221;), when the switch to 4.4 has been or will be done and what will be with future versions. We also have no influence on the error reporting level (and as to me, I want my app to be coded so well it runs without any notice at all :). </p>
<p>Furthermore, I could hope the PHP developers will fix the fix and release a 4.4.1 pretty soon - which I think is far from being realistic regarding the unconcerned comments I&#8217;ve read as to this issue. Fix the fix myself? Not possible, again as I have no control of the target systems.</p>
<p>Maybe an automated search-and-replace can &#8220;fix&#8221; my code to work around the problem. Let alone it would mean to add meaningless code - I am still unsure if there aren&#8217;t any cases where you would want to &#8220;return Factory::build()&#8221; to further indirect the creation of an instance; probably that needs a fix, too, and cannot be found that easily.</p>
<p>As to PHP5 - the version your customers run determines the versions you need to support. Either abandon PHP altogether and rewrite in another language. Or go for PHP5 - but you should not hope that you can live with PHP4 forever. Better act now than being urged in a few years. (Too bad that 4.4 is urgent *now* and came so unannounced that it is a real problem to get your priorities right.)</p>
<p>Indeed the migration is a major problem if you wrote OOP code (like we did) right from the start, and the difference between passing references or working with copies requires developers with a sound understanding of the issue. The errors arising from that kind of mistakes are so subtle that often things break not until a lot of lines of code later or you hardly notice that things break at all.</p>
<p>Face it. :)</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Lux</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-8833</link>
		<dc:creator>Lux</dc:creator>
		<pubDate>Mon, 19 Sep 2005 01:28:01 +0000</pubDate>
		<guid isPermaLink="false">#comment-8833</guid>
		<description>&lt;blockquote&gt;If you’re writing OO code and postponed the migration to PHP5 due to the changes in OOP language features—do it now. It should be pretty the same to walk through all your “legacy” code and to add workarounds for the 4.4 bug, or just remove all the reference stuff altogether because you won’t need it in PHP5.&lt;/blockquote&gt;

Hi Mpigulla,

I'm afraid the issue isn't that straight-forward by far.  I've been writing OO code in PHP since I started with it 5 or 6 years ago.  In a very large application like mine it's near impossible to find time to do a complete code review to ensure that the "copy -&#62; reference" change doesn't affect anything.  It's not as simple as removing the =&#38; because there are places in my code where I deliberately copy objects and PHP5 would now clone in those instances for me, thus breaking my application logic.  So to ensure nothing breaks I either have to find any instances of copying objects and call clone() on them, then remove the ampersand from my =&#38; or I have to review the code even more carefully to figure out which clone()'s are necessary and which aren't.

Either way, it's a significant effort I don't have time for (I already have way too much on my plate), and it's an effort that gains myself and my users absolutely nothing.  So what if it's PHP5 compatible, that in itself has no value other than alleviating fear of being left behind in PHP4.  So what value is there in sifting line-by-line through hundreds of thousands of lines of PHP code for this?  The potential of finding other minor things to tweak while I'm at it?  Who cares about that -- it doesn't add up.  The cost of PHP5 support for significantly sized applications far outweighs any of the benefits.

As for the 4.4 bug, while a careful search-and-replace appears to be able to correct this, the fact is it shouldn't be my responsibility to do that.  PHP should support "return new SomeObject()" syntax, as it has for years.  The memory leak should be fixed, not the elimination of the feature.  All it's doing is forcing us to add needless extra lines of inelegant syntax into our code because PHP as a language is really very lacklustre.

To be completely honest, the only thing that keeps me to PHP is that all my code is written in it.  I looked at a rewrite a couple years ago, and it didn't seem worth the effort.  Perhaps I was wrong...</description>
		<content:encoded><![CDATA[<blockquote><p>If you’re writing OO code and postponed the migration to PHP5 due to the changes in OOP language features—do it now. It should be pretty the same to walk through all your “legacy” code and to add workarounds for the 4.4 bug, or just remove all the reference stuff altogether because you won’t need it in PHP5.</p></blockquote>
<p>Hi Mpigulla,</p>
<p>I&#8217;m afraid the issue isn&#8217;t that straight-forward by far.  I&#8217;ve been writing OO code in PHP since I started with it 5 or 6 years ago.  In a very large application like mine it&#8217;s near impossible to find time to do a complete code review to ensure that the &#8220;copy -&gt; reference&#8221; change doesn&#8217;t affect anything.  It&#8217;s not as simple as removing the =&amp; because there are places in my code where I deliberately copy objects and PHP5 would now clone in those instances for me, thus breaking my application logic.  So to ensure nothing breaks I either have to find any instances of copying objects and call clone() on them, then remove the ampersand from my =&amp; or I have to review the code even more carefully to figure out which clone()&#8217;s are necessary and which aren&#8217;t.</p>
<p>Either way, it&#8217;s a significant effort I don&#8217;t have time for (I already have way too much on my plate), and it&#8217;s an effort that gains myself and my users absolutely nothing.  So what if it&#8217;s PHP5 compatible, that in itself has no value other than alleviating fear of being left behind in PHP4.  So what value is there in sifting line-by-line through hundreds of thousands of lines of PHP code for this?  The potential of finding other minor things to tweak while I&#8217;m at it?  Who cares about that &#8212; it doesn&#8217;t add up.  The cost of PHP5 support for significantly sized applications far outweighs any of the benefits.</p>
<p>As for the 4.4 bug, while a careful search-and-replace appears to be able to correct this, the fact is it shouldn&#8217;t be my responsibility to do that.  PHP should support &#8220;return new SomeObject()&#8221; syntax, as it has for years.  The memory leak should be fixed, not the elimination of the feature.  All it&#8217;s doing is forcing us to add needless extra lines of inelegant syntax into our code because PHP as a language is really very lacklustre.</p>
<p>To be completely honest, the only thing that keeps me to PHP is that all my code is written in it.  I looked at a rewrite a couple years ago, and it didn&#8217;t seem worth the effort.  Perhaps I was wrong&#8230;</p>]]></content:encoded>
	</item>
	<item>
		<title>By: mpigulla</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-8451</link>
		<dc:creator>mpigulla</dc:creator>
		<pubDate>Fri, 02 Sep 2005 11:58:11 +0000</pubDate>
		<guid isPermaLink="false">#comment-8451</guid>
		<description>&lt;blockquote&gt;function &#038;getFoobar() { return $o =&#038; new Foobar(); }&lt;/blockquote&gt;

This 4.4 "fix" is really silly. I agree with Harry: I don't want to care about memory management when coding in PHP. The platform claims to take care about that. When &lt;code&gt; $b =&#038; new Foobar(); &lt;/code&gt; is valid and I can assign the "return" value of a new as a reference, why shouldn't it be possible to just return the same thing (an object instance) as a reference from a function?

Of course we want to have memory leaks fixed in the platform - but not in a way that forces us to touch (in my case: a &lt;em&gt;lot&lt;/em&gt; of) "legacy code". Especially if it requires such silly "workarounds". To me it seems that this workaround does - seen at the PHP language level - not make any sense. It expresses nothing. It forces me to write unneccessary constructs just to somewhere allocate some temporary
memory &lt;em&gt;under the hood&lt;/em&gt; so that the interpreter can pass a reference around. IMHO the language should do that for me.

Please note I only refer to the case of "return new ..."; something like
 &lt;code&gt; 
function foo() { return "blah"; }
  function bar(&#038;$arg) { $arg = 1; }
  bar(foo());
&lt;/code&gt; is really pathologic.

Now Derick says: &lt;blockquote&gt;
The correct way to fix this function is NOT TO RETURN by reference at all! There is simply no reason for doing this.&lt;/blockquote&gt;

PHP5 finally changed the way objects are passed around - with their "handles" (avoiding the word "reference" here). But the point is that the broken PHP4 way of treating objects &lt;strong&gt;forces&lt;/strong&gt; you to do exactly that!

Just consider the commonly used factory pattern, which basically means you have exactly the above function returning a new something();

This function &lt;strong&gt;has&lt;/strong&gt; to return a reference (and you have to assign by reference at the caller's level). Otherwise, you will lose object identity. Consider the following code, where A might be part of a central publish/subscribe pattern where objects register themselves when being constructed.

&lt;code&gt;
m =&#038; $whom;
    }
}

class B {
    var $foo = 0;
    function B(&#038;$registerAt) {
        // $registerAt-&gt;register($this);
    }
}

class Factory {
    function &#038;create(&#038;$registerAt) {
        return new B($registerAt);
    }
}

$a = new A();
$x =&#038; Factory::create($a);

/* $a-&gt;m and $x need to refer to the *same* object */
$x-&gt;foo = 1;
print $a-&gt;m-&gt;foo; /* should print "1" if referencing the *same* object (and works only if B registers itself, of course) */
?&gt;
&lt;/code&gt;

Now that gives the notice in question and the problem is on the "return new B(...)" line.

Things come even worse: Uncomment the register... line in B's constructor. At that moment it's all fine, that is, code in Factory::create() will produce a warning or not &lt;em&gt;depending on the implementation of B::B()&lt;/em&gt;! X-(

Again, the PHP4 way of treating objects &lt;strong&gt;requires&lt;/strong&gt; you to pass around references almost everywhere when working with objects.

If you're writing OO code and postponed the migration to PHP5 due to the changes in OOP language features - do it now. It should be pretty the same to walk through all your "legacy" code and to add workarounds for the 4.4 bug, or just remove all the reference stuff altogether because you won't need it in PHP5. 

Sadly enough Derick remained very vague in his announcement of 4.4.0. The announcement mail did not mention the implications with a single word.</description>
		<content:encoded><![CDATA[<blockquote><p>function &#038;getFoobar() { return $o =&#038; new Foobar(); }</p></blockquote>
<p>This 4.4 &#8220;fix&#8221; is really silly. I agree with Harry: I don&#8217;t want to care about memory management when coding in PHP. The platform claims to take care about that. When <code> $b =&#038; new Foobar(); </code> is valid and I can assign the &#8220;return&#8221; value of a new as a reference, why shouldn&#8217;t it be possible to just return the same thing (an object instance) as a reference from a function?</p>
<p>Of course we want to have memory leaks fixed in the platform - but not in a way that forces us to touch (in my case: a <em>lot</em> of) &#8220;legacy code&#8221;. Especially if it requires such silly &#8220;workarounds&#8221;. To me it seems that this workaround does - seen at the PHP language level - not make any sense. It expresses nothing. It forces me to write unneccessary constructs just to somewhere allocate some temporary<br />
memory <em>under the hood</em> so that the interpreter can pass a reference around. IMHO the language should do that for me.</p>
<p>Please note I only refer to the case of &#8220;return new &#8230;&#8221;; something like<br />
 <code> 
function foo() { return "blah"; }
  function bar(&#038;$arg) { $arg = 1; }
  bar(foo());
</code> is really pathologic.</p>
<p>Now Derick says:<br />
<blockquote>
The correct way to fix this function is NOT TO RETURN by reference at all! There is simply no reason for doing this.</blockquote></p>
<p>PHP5 finally changed the way objects are passed around - with their &#8220;handles&#8221; (avoiding the word &#8220;reference&#8221; here). But the point is that the broken PHP4 way of treating objects <strong>forces</strong> you to do exactly that!</p>
<p>Just consider the commonly used factory pattern, which basically means you have exactly the above function returning a new something();</p>
<p>This function <strong>has</strong> to return a reference (and you have to assign by reference at the caller&#8217;s level). Otherwise, you will lose object identity. Consider the following code, where A might be part of a central publish/subscribe pattern where objects register themselves when being constructed.</p>
<code>
m =&#038; $whom;
    }
}

class B {
    var $foo = 0;
    function B(&#038;$registerAt) {
        // $registerAt->register($this);
    }
}

class Factory {
    function &#038;create(&#038;$registerAt) {
        return new B($registerAt);
    }
}

$a = new A();
$x =&#038; Factory::create($a);

/* $a->m and $x need to refer to the *same* object */
$x->foo = 1;
print $a->m->foo; /* should print "1" if referencing the *same* object (and works only if B registers itself, of course) */
?>
</code>
<p>Now that gives the notice in question and the problem is on the &#8220;return new B(&#8230;)&#8221; line.</p>
<p>Things come even worse: Uncomment the register&#8230; line in B&#8217;s constructor. At that moment it&#8217;s all fine, that is, code in Factory::create() will produce a warning or not <em>depending on the implementation of B::B()</em>! X-(</p>
<p>Again, the PHP4 way of treating objects <strong>requires</strong> you to pass around references almost everywhere when working with objects.</p>
<p>If you&#8217;re writing OO code and postponed the migration to PHP5 due to the changes in OOP language features - do it now. It should be pretty the same to walk through all your &#8220;legacy&#8221; code and to add workarounds for the 4.4 bug, or just remove all the reference stuff altogether because you won&#8217;t need it in PHP5. </p>
<p>Sadly enough Derick remained very vague in his announcement of 4.4.0. The announcement mail did not mention the implications with a single word.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Nico Edtinger</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-2322</link>
		<dc:creator>Nico Edtinger</dc:creator>
		<pubDate>Wed, 31 Dec 1969 19:00:00 +0000</pubDate>
		<guid isPermaLink="false">#comment-2322</guid>
		<description>&lt;p&gt;I guess it should also be possible to write something like (sorry, no PHP 4.4 to test)&lt;/p&gt;

&lt;p&gt;function &#038;getFoobar() {&lt;br /&gt;
  return $o = new Foobar();&lt;br /&gt;
}&lt;/p&gt;

&lt;p&gt;making it 3-5 chars longer. Of course the problems is solved in PHP5, at least for objects.&lt;/p&gt;

&lt;p&gt;b4n&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>I guess it should also be possible to write something like (sorry, no PHP 4.4 to test)</p>
<p>function &#038;getFoobar() {<br />
  return $o = new Foobar();<br />
}</p>
<p>making it 3-5 chars longer. Of course the problems is solved in PHP5, at least for objects.</p>
<p>b4n</p>]]></content:encoded>
	</item>
	<item>
		<title>By: BerislavLopac</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-2323</link>
		<dc:creator>BerislavLopac</dc:creator>
		<pubDate>Wed, 31 Dec 1969 19:00:00 +0000</pubDate>
		<guid isPermaLink="false">#comment-2323</guid>
		<description>&lt;p&gt;I have a feeling -- and it's getting stronger with each new issue like this -- is that PHP is starting to feel the strain of its own popularity and growth. Those are all symptomps of its growing pains, and as those keep piling up PHP will start to lose some of its followers (or it has already started, if we take a look at some recent threads on the "PHP Appliaction Design" here on Sitepoint.&lt;/p&gt;

&lt;p&gt;I believe that they should have break the backward-compatibility gospel with version 5 (which they did in a way with that php.ini setting) and go more completely in the OOP direction.&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>I have a feeling &#8212; and it&#8217;s getting stronger with each new issue like this &#8212; is that PHP is starting to feel the strain of its own popularity and growth. Those are all symptomps of its growing pains, and as those keep piling up PHP will start to lose some of its followers (or it has already started, if we take a look at some recent threads on the &#8220;PHP Appliaction Design&#8221; here on Sitepoint.</p>
<p>I believe that they should have break the backward-compatibility gospel with version 5 (which they did in a way with that php.ini setting) and go more completely in the OOP direction.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: PC_Freak</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-2324</link>
		<dc:creator>PC_Freak</dc:creator>
		<pubDate>Wed, 31 Dec 1969 19:00:00 +0000</pubDate>
		<guid isPermaLink="false">#comment-2324</guid>
		<description>&lt;p&gt;I had this issue in my forum package about a week ago. I have an object for the DB class and one for functions. Inside a method of the function class, where I access a method of the DB class by making '$db' global, the following failed:&lt;/p&gt;

&lt;p&gt;$query = end($db-&gt;get_used_queries());&lt;/p&gt;

&lt;p&gt;The method returns an array so it should work, however 4.4 gave an error. The following worked:&lt;/p&gt;

&lt;p&gt;$queries = $db-&gt;get_used_queries();&lt;br /&gt;
$query = end($queries);&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>I had this issue in my forum package about a week ago. I have an object for the DB class and one for functions. Inside a method of the function class, where I access a method of the DB class by making &#8216;$db&#8217; global, the following failed:</p>
<p>$query = end($db->get_used_queries());</p>
<p>The method returns an array so it should work, however 4.4 gave an error. The following worked:</p>
<p>$queries = $db->get_used_queries();<br />
$query = end($queries);</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Eric.Coleman</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-2325</link>
		<dc:creator>Eric.Coleman</dc:creator>
		<pubDate>Wed, 31 Dec 1969 19:00:00 +0000</pubDate>
		<guid isPermaLink="false">#comment-2325</guid>
		<description>&lt;p&gt;BC break is here to stay for now...&lt;/p&gt;

&lt;p&gt;Hopefully... when it's time for 6... they just say screw it and break it all...&lt;/p&gt;

&lt;p&gt;- Eric &lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>BC break is here to stay for now&#8230;</p>
<p>Hopefully&#8230; when it&#8217;s time for 6&#8230; they just say screw it and break it all&#8230;</p>
<p>- Eric </p>]]></content:encoded>
	</item>
	<item>
		<title>By: lastcraft</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-2326</link>
		<dc:creator>lastcraft</dc:creator>
		<pubDate>Wed, 31 Dec 1969 19:00:00 +0000</pubDate>
		<guid isPermaLink="false">#comment-2326</guid>
		<description>&lt;p&gt;Hi.&lt;/p&gt;

&lt;p&gt;The issue is not so small. I had to add 50+ lines of useless code to SimpleTest to work around it I estimate that a 40K line commercial application that I contribute to would need several thousand. That effectively blocks us from "upgrading" to 4.4. Especially as their is a compound effect with some Zend acclerator bugs that caused to put all of theose &#038;'s in the code in the first place.&lt;/p&gt;

&lt;p&gt;It affects the OO coders with their "&#038;" returns worst of all. I don't see why thye could not have fixed the fix. Or for that matter why they have taken so long to fix fundamental issues in the langauge.&lt;/p&gt;

&lt;p&gt;yours, Marcus&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>Hi.</p>
<p>The issue is not so small. I had to add 50+ lines of useless code to SimpleTest to work around it I estimate that a 40K line commercial application that I contribute to would need several thousand. That effectively blocks us from &#8220;upgrading&#8221; to 4.4. Especially as their is a compound effect with some Zend acclerator bugs that caused to put all of theose &#038;&#8217;s in the code in the first place.</p>
<p>It affects the OO coders with their &#8220;&#038;&#8221; returns worst of all. I don&#8217;t see why thye could not have fixed the fix. Or for that matter why they have taken so long to fix fundamental issues in the langauge.</p>
<p>yours, Marcus</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Etnu</title>
		<link>http://www.sitepoint.com/blogs/2005/07/30/php-44-minor-gotcha/#comment-2327</link>
		<dc:creator>Etnu</dc:creator>
		<pubDate>Wed, 31 Dec 1969 19:00:00 +0000</pubDate>
		<guid isPermaLink="false">#comment-2327</guid>
		<description>&lt;p&gt;People complaining about the notice are kind of amusing to me. The entire reason for it is that it can cause memory leaks. It's not stopping your application from working, it's just a gentle nudge that says "fix it now". It SHOULD be a fatal error, if you ask me, but I'm anal about that sort of thing. &lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>People complaining about the notice are kind of amusing to me. The entire reason for it is that it can cause memory leaks. It&#8217;s not stopping your application from working, it&#8217;s just a gentle nudge that says &#8220;fix it now&#8221;. It SHOULD be a fatal error, if you ask me, but I&#8217;m anal about that sort of thing. </p>]]></content:encoded>
	</item>
</channel>
</rss>
