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


PHP General Mailing List (
To unsubscribe, visit:

Reply via email to