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

Reply via email to