PHP에서 __get
및 __set
메쏘드가있는 것이 무엇인지 잘 모르겠습니다.php __set(), __get과 간단한 설정, 함수 가져 오기의 차이점
배열의 값을 설정하는 코드는 다음과 같습니다.
class myclass {
public $sotre = array();
public function __set($arraykey,$value){
echo 'Setting '.$arraykey.' to '.$value;
$this->store[$arraykey] = $value;
}
}
$obj = new myclass;
$obj->a = 'arfan';
다음은 다른 코드입니다.
class myclass {
public $sotre = array();
public function setvalue($arraykey,$value){
echo 'Setting '.$arraykey.' to '.$value;
$this->store[$arraykey] = $value;
}
}
$obj = new myclass;
$obj->setvalue('a','arfan');
두 기능 모두 동일한 기능을합니다. __get
/__set
마법 방법을 사용하여
코드 :
class myclass {
public $store =
array(
'a'=>'arfan',
'b'=>'azeem',
'c'=>'hader'
);
public function __get($arraykey){
echo 'Getting array key '.$arraykey.'<br />';
if(array_key_exists($arraykey,$this->store)){
return $this->store[$arraykey];
}
}
public function getvalue($arraykey){
echo 'Getting array key '.$arraykey.'<br />';
if(array_key_exists($arraykey,$this->store)){
return $this->store[$arraykey];
}
}
}
$obj = new myclass;
echo $obj->a;
$obj = new myclass;
echo $obj->getvalue('a');
당신이 볼의 기능을 모두 동일한 작업을 수행.
PHP 개발자가 직접 구현할 수있는 마법 방법 __get
/__set
을 사용하는 이유에 대해 혼란 스럽습니다.
나는 그 (것)들을위한 약간 사용이 확실하다 그러나 나는 무언가를 놓치고 있어야한다.
는'$를 OBJ가> A'는 $를 OBJ> getvalue ('A') '보다 더 읽을'... ** MagicMethods에 대한 – DCoder