Re: Bitwise Declaration of Flags

From: Date: Sun, 27 Sep 2009 10:43:51 +0000
Subject: Re: Bitwise Declaration of Flags
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-45639@lists.php.net to get a copy of this message
Are there any plans to allow bitwise declaration of flags? Example: class foo { const FLAG_1 = 1; const FLAG_2 = 2; const FLAG_3 = 4; private $Flags = self::FLAG_1 | self::FLAG_3 }
Hi, This is not allowed since declaration values should be resolvable at compile time. I.e. they can not be an expression, but only a value literal. While technically expression folding is possible, it's not implemented in any part of the PHP engine (AFAIK), and I don't think it's planned any time soon. To do what you want, initialize the value in the constructor: class foo { ... private $flags; function __construct() {
       $this->flags = self::FLAG_1 | self::FLAG_3;
} } Regards, Stan Vassilev

« previous php.internals (#45639) next »