Поэтому я только начал использовать магические методы и столкнулся с этой проблемой, когда мне нужно связать переменные для использования в моей функции.
Это маленький пример моей проблемы
class test{
protected $arraytest = array();
function __construct(){
$this->test = "datafor2";
var_dump($this->arraytest);
}
function test(){
return $this->test;
}
function __set($name, $value){
$this->arraytest[$name] = $value;
}
}
$test = new test();
echo $test->test();
Так что я пытаюсь сделать это связать test
для последующего использования в функции test()
, но поскольку я привязываю переменную к объекту, она использует магический метод и связывает ее соответственно с установщиком.
Это не то поведение, которое я ищу в качестве переменной $arraytest
, не должен иметь переменную test
переплетены.
Какими способами это можно решить? Я знаю, что я мог бы просто сделать исключение в stter, если переменная test
Просто интересно, какие лучшие практики есть при использовании магических сеттеров.
Просто объявите переменную как свойство, и сеттер не будет использоваться.
class test{
protected $arraytest = array();
protected $test;
function __construct(){
$this->test = "datafor2";
var_dump($this->arraytest);
}
function test(){
return $this->test;
}
function __set($name, $value){
$this->arraytest[$name] = $value;
}
}
$test = new test();
echo $test->test();
Других решений пока нет …