すきすきだいすき このページをアンテナに追加 RSSフィード

2008-08-27

インスタンスのメンバの値を、クラスのコンストラクタの引数として連想配列で受け取る。

とりあえずごりごりと書いてみたけど何かもっと良い方法がある気がするし、もっと綺麗な書き方が知りたいとおもた。

<?php
class BarcodeGraph {
	public $color = "#bb0000";
	public $background_color = "#ffaaaa";
	public $width = 400;
	public $height = 20;
	public $bars = array();
	
	public function __construct(Array $config) {
		$params = array("color", "background_color", "width", "height", "bars");
		foreach ($params as &$param) { $param = "\$this->$param = isset(\$config['$param']) ? \$config['$param'] : \$this->$param;"; }
		eval(join("", $params));
	}
}

$instance = new BarcodeGraph(
	array(
	      "background_color" => "black"
	));
print $instance->background_color;
?>