[php] 간단 Properties class test 5.0 이상에서 > 팁앤테크

본문 바로가기

사이트 내 전체검색

뒤로가기 팁앤테크

[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
*/
?>
추천0

댓글목록 0

등록된 댓글이 없습니다.

전체 825건 13 페이지
게시물 검색
Copyright (c) 株式会社YHPLUS. All rights reserved.

사이트 정보

株式会社YHPLUS / 대표 : ZERO
〒171-0014 東京都豊島区池袋2-41-5 アーバン154 8F
050-5539-7787
오픈카카오톡 (YHPLUS) :
https://open.kakao.com/o/slfDj15d

PC 버전으로 보기