[php] 간단 Properties class test 5.0 이상에서
본문
<?
/********************
*
* Properties class
*
* Date : 2010.
*
* @author
*
* desc :
* map 자료구조 형태의 프로퍼티를 관리하는 class
*
*/
class Properties
{
private $list = null; // 프로퍼티를 담을 배열
/*******************
* 생성자
* arg[0] : 타입 - Properties class type 이어야 한다. */
public function __construct(Properties $defaultProperties=null)
{
if ($defaultProperties)
{
$this->list = $defaultProperties->getList();
}
}
/*******************
* property 값을 리턴한다.
* arg[0] : list의 key */
public function getProperty($key)
{
if (is_array($this->list) && $key)
return $this->list[$key];
else
return "";
}
/*******************
* property 값을 리턴한다.
* arg[0] : list의 key */
public function setProperty($key, $value)
{
$this->list[$key] = $value;
}
/*******************
* property 값을 배열형태로 받는다.
* arg[0] : property 배열 */
public function setList($list)
{
$this->list = $list;
}
/*******************
* property 배열을 리턴한다.
* */
public function getList()
{
return $this->list;
}
}
/*
$p = new Properties();
$p->setProperty('apple', '사과');
$props = new Properties($p);
echo $props->getProperty('apple')."<br/>";
var_dump($props->getList());
result:
>> 사과
>> array(1) { ["apple"]=> string(6) "사과" }
*/
class Item
{
public $name = "";
public $price = 0;
protected $spec = null;
public function __construct($name, $price)
{
$this->name = $name;
$this->price = $price;
}
public function getSpec()
{
return $this->spec;
}
public function setSpec( Properties $props )
{
$this->spec= $props;
//echo get_class($this->props);
}
}
$p = new Properties();
$p->setProperty('width', '400');
$p->setProperty('height', '700');
$p->setProperty('forecolor', 'silver');
$p->setProperty('backcolor', 'black');
$item = new Item('iphone', 300000);
$item->setSpec($p);
echo $item->getSpec()->getProperty('forecolor');
/*
result:
>> silver
*/
?>
/********************
*
* Properties class
*
* Date : 2010.
*
* @author
*
* desc :
* map 자료구조 형태의 프로퍼티를 관리하는 class
*
*/
class Properties
{
private $list = null; // 프로퍼티를 담을 배열
/*******************
* 생성자
* arg[0] : 타입 - Properties class type 이어야 한다. */
public function __construct(Properties $defaultProperties=null)
{
if ($defaultProperties)
{
$this->list = $defaultProperties->getList();
}
}
/*******************
* property 값을 리턴한다.
* arg[0] : list의 key */
public function getProperty($key)
{
if (is_array($this->list) && $key)
return $this->list[$key];
else
return "";
}
/*******************
* property 값을 리턴한다.
* arg[0] : list의 key */
public function setProperty($key, $value)
{
$this->list[$key] = $value;
}
/*******************
* property 값을 배열형태로 받는다.
* arg[0] : property 배열 */
public function setList($list)
{
$this->list = $list;
}
/*******************
* property 배열을 리턴한다.
* */
public function getList()
{
return $this->list;
}
}
/*
$p = new Properties();
$p->setProperty('apple', '사과');
$props = new Properties($p);
echo $props->getProperty('apple')."<br/>";
var_dump($props->getList());
result:
>> 사과
>> array(1) { ["apple"]=> string(6) "사과" }
*/
class Item
{
public $name = "";
public $price = 0;
protected $spec = null;
public function __construct($name, $price)
{
$this->name = $name;
$this->price = $price;
}
public function getSpec()
{
return $this->spec;
}
public function setSpec( Properties $props )
{
$this->spec= $props;
//echo get_class($this->props);
}
}
$p = new Properties();
$p->setProperty('width', '400');
$p->setProperty('height', '700');
$p->setProperty('forecolor', 'silver');
$p->setProperty('backcolor', 'black');
$item = new Item('iphone', 300000);
$item->setSpec($p);
echo $item->getSpec()->getProperty('forecolor');
/*
result:
>> silver
*/
?>
추천0
댓글목록 0
등록된 댓글이 없습니다.