On Oct 8, 2012, at 10:07 PM, Denis Portnov <denixp...@gmail.com> wrote:

> 08.10.2012 15:52, Clint Priest пишет:
>>     public $Hours {
>>         get { return $this->Seconds / 3600; }
>>         set { $this->Seconds = $value; }
>>         isset<http://www.php.net/isset>  { return 
>> isset<http://www.php.net/isset>($this->Seconds); }
>>         unset<http://www.php.net/unset>  { 
>> unset<http://www.php.net/unset>($this->Seconds); }
>>     }
> 
> 
> Hi Clint,
> 
> I've noticed some magic variable '$value' is introduced. And except for 
> superglobals I guess there is no such thing in PHP, so it looks bit puzzling 
> to me. I'd suggest on of the following:
> 
> - variable for value has the same name as property
>    public $Hours {
>        set { $this->Seconds = $Hours * 3600; }
>    }
> 
> - magic constant
>    public $Hours {
>        set { $this->Seconds = __VALUE__ * 3600; }
>    }
> 
> - setter resambles setter method, wich also allows typehinting
>    public $Hours {
>        set ($value) { $this->Seconds = $value * 3600; }
>    }
> 
>    public $Hours {
>        set (DateTime $dateTime) { $this->Seconds = $dateTime->getTimestamp(); 
> }
>    }


If this function inspired syntax is used, then it kind of hints the possibility 
of future parameter overloading, like:

public $Hours {
    set ( DateTime $dateTime ) { $this->Seconds = $dateTime->getTimestamp(); }
    set ( int $hours ) { $this->Seconds = $hours*60*60; }
}


So for me +1 on that syntax, or using/future-proofing for the syntax from C#:

    public DateTime $Hours {
        set { $this->Seconds = $value->getTimestamp(); }
    }

However the example doesn't make much sense (hours being datetime).


> 
> - or at least have it in same format as superglobals
>    public $Hours {
>        set { $this->Seconds = $_VALUE * 3600; }
>    }
> 
> What do you think?
> 
> Thanks
> Denis
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 

Reply via email to