#41641 [Asn->Bgs]: Indirect Modification Notice due to modification using __set

From: Date: Fri, 17 Aug 2007 20:12:27 +0000
Subject: #41641 [Asn->Bgs]: Indirect Modification Notice due to modification using __set
References: 1  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969377643@lists.php.net to get a copy of this message
ID: 41641 Updated by: vrana@php.net Reported By: asnyder at mddev dot com -Status: Assigned +Status: Bogus Bug Type: Documentation problem Operating System: Linux Fedora Core 4 PHP Version: 5.2.3 Assigned To: helly New Comment: Please do not submit the same bug more than once. An existing bug report already describes this very problem. Even if you feel that your issue is somewhat different, the resolution is likely to be the same. Thank you for your interest in PHP. Same as bug #38102. Previous Comments: ------------------------------------------------------------------------ [2007-07-18 14:26:49] jani@php.net Oops, wrong id, see bug #42030 ------------------------------------------------------------------------ [2007-06-25 19:49:07] asnyder at mddev dot com Ok, HOW is this code, or code like it "WRONG"? The code has the desired effect. The purpose of the code is to allow the user to call a function via the __set, __get without having to actually call the actual function. For instance, if one would want to have properties. Regardless of what you think the code should be, the code has the effect that the developer wanted, thus the code is not wrong, it's just confusing to you. What EXACTLY is wrong with this code? What effect is it having that is not the desired effect? ------------------------------------------------------------------------ [2007-06-25 19:43:22] tony2001@php.net >But it DOES have an affect. But the code is STILL wrong, that's what the warning is trying to tell you. ------------------------------------------------------------------------ [2007-06-25 19:39:07] asnyder at mddev dot com But it DOES have an affect. It did change the SomeVariable value of the actual object regardless of the __get returning by value. In these situations it should NOT trigger the warning. Run the example, and store values in the SomeVariable, you'll see that the actual value DOES get changed. Lets not just assume things without atually reading and running the example. If you were in this situation you would most definately not want it to throw this warning. Realize that much of the Web 2.0 movement using php relise on the __get, and __set methods, and in throwing this warning higly discourages it's use, even when the application of it, such as my example is perfectly legitimate and valid. ------------------------------------------------------------------------ [2007-06-25 19:11:26] tony2001@php.net The __get() function returns by value, not by reference, hence the warning. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/41641 -- Edit this bug report at http://bugs.php.net/?id=41641&edit=1

« previous php.doc (#969377643) next »