Re: Re: Enforce a constant in a class.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Richard Quadling wrote:
2010/1/22 Pete Ford <pete@xxxxxxxxxxxxx>:
IMHO, a constant is not the correct beastie in this case - if you want it to
be different depending on the implementation then it ain't a constant!

You should probably have protected static variables in the interface, and
use the implementation's constructor to set the implementation-specific
value (or override the default)

interface SetKillSwitch
{
       protected static $isSet = TRUE;
       protected static $notes;
       protected static $date = '2010-01-22T11:23:32+0000';
}

class KilledClass implements SetKillSwitch
{
       public function __construct()
       {
               self::$isSet = FALSE;
               self::$date = '2010-01-21T09:30:00+0000';
               self::$notes = "Test";
       }
}

Cheers
Pete Ford

And of course, "Fatal error: Interfaces may not include member variables".




Ooops, sorry :)

I tend to end up using abstract base classes rather than interfaces for that sort of reason...

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux