是否可以从PHP stdClass检查属性?我有一些模型作为stdClass生成.在使用它们时,我想检查我正在调用的属性是否存在于某种Core类中.我注意到stdClass忽略了__get ...
如果stdClass中的属性存在于对象中,它们如何检查?
StdClass对象只包含porperties,而不包含代码.因此,您无法从"内部"编码任何内容.所以你需要解决这个"缺点".根据生成这些类的内容,可以通过"重载"数据(例如,使用Decorator)来提供您正在寻找的功能:
class MyClass
{
private $subject;
public function __construct(object $stdClass)
{
$this->subject = $stdClass;
}
public function __get($name)
{
$exists = isset($this->subject->$name);
#...
}
}
$myModel = new MyClass($model);
Run Code Online (Sandbox Code Playgroud)