Req #53229 [Opn]: Change of getters and setters

From: Date: Thu, 04 Nov 2010 18:07:30 +0000
Subject: Req #53229 [Opn]: Change of getters and setters
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-155765@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
 User updated by:    sjors dot vanleeuwen at itsxtreme 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:

Sorry for the 1000000th post of the request and ofcourse thanks for the
tips, though not everyone of them applies to the cause.

Be hoping to see it soon and i might look into creating a patch for it
in the meanwhile. Is there any way i can help developing it for the
community?

Kind regards


Previous Comments:
------------------------------------------------------------------------
[2010-11-04 17:03:42] uramihsayibok at gmail dot com

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.

------------------------------------------------------------------------
[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


Thread (6 messages)

« previous php.bugs (#155765) next »