3 ms·
Came here to post the same thing. I don't know if it has been fixed in 5.4, though.
by stevencorona 14y ago
Came here to post the same thing. I don't know if it has been fixed in 5.4, though.
- robryan 14y agoNope, the parser seems to be pretty brittle around this. Someone who knows more about the internals can probably explain why this works: class User { public $mapping = array( 'username' => array( 'type' => 'string', 'length' => 32, 'unique' => true, ) ); public function __construct() { $this->mapping['nullable'] = function() { echo "test"; }; $this->mapping['nullable'](); } } $user = new User(); And this doesn't: class User { public static $mapping = array( 'username' => array( 'type' => 'string', 'length' => 32, 'unique' => true, ) ); public static function set() { self::$mapping['nullable'] = function() { echo "test"; }; self::$mapping['nullable'](); } } User::set();
- TazeTSchnitzel 14y agoI used to be interested in helping fix PHP, but I gave up. The reason is because Rasmus and a few others seem to think that using the syntax definition to do your type checking for you is a good idea, and that the hundreds of possible cases they didn't think of, don't matter.