|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits              [2010-12-02 19:55 UTC] hritter at e-onsoftware dot com
 
-Status: Open
+Status: Closed
  [2010-12-02 19:55 UTC] hritter at e-onsoftware dot com
  [2010-12-03 22:35 UTC] cataphract@php.net
 
-Status: Closed
+Status: Bogus
 | |||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 14:00:01 2025 UTC | 
Description: ------------ I had some memory overflow errors. I logged the memory usage step by step and then I see a difference of 50Mo between two logs. In the method called between this two logs, I used a static class attribute as a non-static one (with $this). The modification on the attribute took effect but triggered an "Interoperability or Compatibility Notice". I fixed this error and I had a gain of 50 Mo!! I have the same bug with a non-static method used as a static method (with self::). I had a gain of 90Mo because this method was really far away in the code. It is a pretty harsh punishment for a compatibility error ;-) Test script: --------------- class LeakTester { private static $nTest = 0; public function Test() { $this->nTest++; echo $this->nTest."<br/>\n"; } } // ---> Test $oTest = new LeakTester(); $oTest->Test(); echo memory_get_usage()."<br/>\n"; // (1) $oTest->Test(); echo memory_get_usage()."<br/>\n"; // (2) > (1) Expected result: ---------------- (2) should be equal to (1) Actual result: -------------- (2) is really greater than (1)