문제
그냥 아이디어 :
예제 (php) : 이름을 설정하려면 : $ object-> name ( 'name'); 이름을 얻으려면 : $ object-> name ();
인수가없는 경우 :이 방법은 getter로 사용됩니다. 간단한 getters/setter 용. 어리석은, 어쩌면?
편집 : 답을 후속하기 : 나는 정말로 마음에 들지 않는다. 얻고 설정하십시오 나는 가능한 한 명백한 인터페이스를 선호하기 때문에. 속성이 몇 개 밖에 없으면 과잉 IMHO입니다. 그래서 나는 몇 개의 명백한 getters/setters가있는 클래스/객체로 좁히고 싶습니다.
해결책
물론, 당신은 당신의 응용 프로그램에서 의미가 있다면 그렇게 할 수 있습니다. 그렇지 않으면 나는 당신을 위해 이미 설정된 표준 getters/setter 만 사용합니다. 기능은 다음과 같이 보일 수 있습니다.
public function name($val = null)
{
if (is_null($val))
{
return $this->name;
}
else
{
$this->name = $val;
}
}
다른 팁
문제는 따라 가기가 어려울 것입니다. 나는 오히려 php5의 __get과 __set을 사용하여 변수를 얻고 설정하는 것이 더 자연스럽고 모든 사람들은 내가하고있는 일을 정확히 알 것입니다. 즉:
class myClass { function __get($name) { return $this->array[$name]; } function __set($name, $value) { $this->array[$name] = $value; } function print() { echo $this->array['test']; } } $obj = new myClass; $obj->test = "Hi"; echo $obj->test; //echos Hi. $obj->print(); //echos Hi.
__call () 마법 방법을 사용하여 수행 할 수 있습니다.
class Test {
public function __call($name, array $args) {
$variable =& $this->$name;
if(!empty($args)) {
$variable = $args[0];
}
return $variable;
}
}
제휴하지 않습니다 StackOverflow