On 2 August 2011 06:28, Ren <lobbyjones@xxxxxxxxx> wrote: > For a long time I wanted keyword parameters in PHP. But thanks to > newer features like traits and reflection classes I have come up with > something that looks pretty close. > > trait KeywordConstructor { > public function __construct($members) { > $class = new ReflectionClass($this); > $properties = $class->getProperties(); > > foreach ($properties as $p) { > $name = $p->getName(); > > if (isset($members[$name])) { > $this->$name = $members[$name]; > } > } > } > } > > class User { > use KeywordConstructor; > private $name; > private $age; > } > > $lobby = new User(['name' => 'Lobby', 'age' => 36]); > > Right now this requires the trunk version of PHP to work. I just > wanted to share this in case anyone finds it interesting and/or > useful. I use a similar technique when I need to populate a SOAP class on the server to coerce data from the DB into the appropriate type as defined in the docblock of the class. -- Richard Quadling Twitter : EE : Zend : PHPDoc @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php