Keyword Constructor
| From: | Ren | Date: | Tue, 02 Aug 2011 05:28:52 +0000 |
| Subject: | Keyword Constructor | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-314267@lists.php.net to get a copy of this message | ||
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.
--
ejmr
南無妙法蓮華經