Обойти сеттеров внутри класса

Поэтому я только начал использовать магические методы и столкнулся с этой проблемой, когда мне нужно связать переменные для использования в моей функции.

Это маленький пример моей проблемы

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Просто интересно, какие лучшие практики есть при использовании магических сеттеров.

0

Решение

Просто объявите переменную как свойство, и сеттер не будет использоваться.

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();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]