我试图重新定义特征中魔法__set
的行为。当我还想从特征访问父类自定义__set
函数时,问题就出现了。
trait TestingTrait {
public function __set($key, $value)
{
// Some stuff...
parent::__set($key, $value);
// self::__set($key, $value);
}
}
class TestingClass {
use TestingTrait;
}
$var = new TestingClass();
$var->value = 'some value';
一切都很完美,直到我还需要使用主类__set
方法,因为它正在使用变量集做其他一些事情。
我已尝试使用self
,但它会进入无限循环。有没有办法访问主类?
答案 0 :(得分:2)
您应该像这样使用$this->
:
<?php
trait TestingTrait {
public function __set($key, $value)
{
// Some stuff...
$this->$key = 'proof that it is going through here: ' . $value;
}
}
class TestingClass {
use TestingTrait;
}
$var = new TestingClass();
$var->value = 'some value';
echo $var->value;
proof that it is going through here: some value
答案 1 :(得分:0)