我有一个 PHP 类型的对象MyObject
.
$myObject instanceof MyObject
现在,在class MyObject
,有一个非静态函数,在那里,我使用对“我”的引用,例如$this
,但我那里还有另一个对象。
是否有可能,不做$this = $myObject
,以达到或多或少相同的效果,就像类似的东西set_object_vars($this, get_object_vars($myObject))
?
<?php
class MyObject
{
public function import(MyObject $object)
{
foreach (get_object_vars($object) as $key => $value) {
$this->$key = $value;
}
}
}
我猜会做你想做的事,但你应该注意以下几点:
-
get_object_vars
只会找到非静态属性
-
get_object_vars
只会找到可访问的属性根据范围
The 根据范围这一部分非常重要,可能值得更多解释。您知道属性范围是阶级依赖而不是依赖于实例 in PHP?
这意味着在上面的例子中,如果你有一个private $bar
财产在MyObject
, get_object_vars
会看到它,因为你在一个实例中MyObject
班级。如果您想这样做,这显然行不通import另一个类的实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)