On Mon, 2007-11-19 at 11:25 +0100, Kiketom wrote:
> Hi all.
> Yesterday i have looking for the overloading members
>
> Member overloading
> void __set ( string name, mixed value )
> mixed __get ( string name )
>
> As an example i put this code:
>
> class foo
> {
> private $ID;
> private $Name;
> private $LastName;
>
> private function __get($var)
> {
> return $var;
> }
>
> private function __set($var,$value)
> {
> $var = $value;
> }
> }
>
>
> $foo = new foo();
> $foo->ID = 1;
> $foo->Name = "Henry";
> $foo->LastName = "Ford",
> ....
>
> that's horrible!!!
>
> And if i want to validate that ID > 0??
>
> i have to put this validation in the function __set for each property??
> private function __set($var,$value)
> {
> if ($var = 'ID')
> {
> //validate that ID is > 0
> }
> $var = $value;
> }
>
>
> Not exists a better method to manage the properties in a class?
>
> Like in C#
>
> private int _ID;
>
> public int ID
> {
> get { return _ID;}
> set
> {
> if (value > 0)
> {
> _ID = value;
> }
> else
> {
> //Exception
> }
> }
> }
Well, if you really want to, you can do the following:
<?php
class foo
{
private $ID;
private $Name;
private $LastName;
private function __get( $var )
{
if( method_exists( $this, '___get_'.$var ) )
{
return $this->{'___get_'.$var}();
}
else
{
return $this->{$var};
}
}
private function __set( $var, $value )
{
if( method_exists( $this, '___get_'.$var ) )
{
return $this->{'___set_'.$var}( $value );
}
else
{
return ($this->{$var} = $value);
}
}
private function ___get_ID()
{
}
private function ___set_ID( $value )
{
}
}
?>
But I wouldn't.
Cheers,
Rob.
--
...........................................................
SwarmBuy.com - http://www.swarmbuy.com
Leveraging the buying power of the masses!
...........................................................
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php