by Pep
PHP: Only variable references should be returned by reference
Take the following code example:
<?php
class myClass {
public $var = 1;
public function &getVar() {
return($this->var);
}
}
$obj = new myClass;
$value = &$obj->getVar();
?>
This looks like valid code, right? PHP wants you to use the & in both places to indicate that you want to return by reference, and that’s what we have. But how come that this code still generates the notice?
Quote from php “return” manual (http://php.net/return):
Note: You should never use parentheses around your return variable when returning by reference, as this will not work. You can only return variables by reference, not the result of a statement. If you use return ($a); then you’re not returning a variable, but the result of the expression ($a) (which is, of course, the value of $a).
While it’s a very simple mistake, it did take me while to figure this out.
| Print article | This entry was posted by Pep on April 24, 2009 at 9:22 am, and is filed under Computing, Programming. Follow any responses to this post through RSS 2.0. Both comments and pings are currently closed. |
Comments are closed.