如何解决如何从对象数组中删除私有属性?
$array = $this->em->getRepository($entity)->filter($id);
通过学说,我正在创建一个数组:
array:24 [▼
0 => Members^ {#543 ▼
-id: 1
-username: "lio"
-email: "info@somepage.com"
-isActive: true
-name: "Lio"
-projects: PersistentCollection^ {#590 ▶}
-pages: PersistentCollection^ {#615 ▶}
}
1 => Members^ {#135029 ▶}
2 => Members^ {#125937 ▶}
3 => Members^ {#1807 ▶}
4 => Members^ {#135075 ▶}
5 => Members^ {#135086 ▶}
我尝试从该数组中删除对象项目:
foreach ($array as $value) {
dump($value->projects);
}
我收到该对象是私有对象的错误消息。
我找到了这篇文章,但是上面写着,我需要在类内部编写一个函数。
Removing private properties of object
我的问题是,是否可以在课堂外将其删除?因为当我在类中删除它时,它总是会被删除,而我只想在特定情况下才删除它。
解决方法
这是Member
对象的数组。对象的私有属性只能通过其方法访问。您需要找到声明类Member
的文件。然后添加一个公共类方法来执行unset。例如,
class Member {
// ...
public function unsetProjects()
{
unset($this->projects);
}
}
那么您应该能够做到这一点:
foreach ($array as $value) {
$value->unsetProjects();
}
,
您应该使用getter和setters
foreach ($array as $value) {
dump($value->getProjects());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。