Req #53229 [Com]: Change of getters and setters
| From: | uramihsayibok at gmail dot com | Date: | Thu, 04 Nov 2010 16:03:42 +0000 |
| Subject: | Req #53229 [Com]: Change of getters and setters | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-155760@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=53229&edit=1
ID: 53229
Comment by: uramihsayibok at gmail dot com
Reported by: sjors dot vanleeuwen at itsxtreme dot com
Summary: Change of getters and setters
Status: Open
Type: Feature/Change Request
Package: Class/Object related
PHP Version: Irrelevant
Block user comment: N
New Comment:
This is the umpteenth request for this feature. Look at the PHP RFC Wiki
(http://wiki.php.net/rfc), specifically "Property get/set syntax"
(http://wiki.php.net/rfc/propertygetsetsyntax).
Meanwhile, a protip for you:
1. Use a public $a and public $b.
2. Unset the variables in your constructor.
3. Implement __get and __set however you see fit. Example: use protected
_getA()
and _setA() methods.
Previous Comments:
------------------------------------------------------------------------
[2010-11-02 20:44:28] sjors dot vanleeuwen at itsxtreme dot com
Description:
------------
It would be very usefull to have getters in a way like c#.
Example:
Class Test {
private $_a;
private $_b;
public function get a() {
return $this->_a;
}
}
this way the private $_b isn't available to the outside world which is
the case with out of the box __get.
It also (in my opinion) gives your code a much cleaner look and you can
do special things if needed in your functions too.
in the __get function you'll have to make if statements or other checks
to get the same result.
You can also just use:
Example:
Class Test {
private $_a;
private $_b;
public function a() {
return $this->_a;
}
}
but then you would have to use:
$test->a() instead of $test->a which gives a wrong assumption that you
are calling a function which you are not, you are calling a property of
your object.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53229&edit=1