如何从对象数组中删除私有 属性?
How can I remove a private property from an array of object?
$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);
}
我收到该对象是私有的错误消息。
我找到了这个 post,但是上面写着,我需要在 class.
里面写一个函数
Removing private properties of object
我的问题是,是否可以在 class 之外删除它?因为当我在 class 中删除它时,它总是被删除,我只想在特定情况下删除它。
你应该使用 getter 和 setter
foreach ($array as $value) {
dump($value->getProjects());
}
这是一个 Member
对象数组。对象的私有属性只能通过其方法访问。您需要找到声明 class Member
的文件。然后添加一个public class 方法来做unset。例如,
class Member {
// ...
public function unsetProjects()
{
unset($this->projects);
}
}
那么你应该可以这样做:
foreach ($array as $value) {
$value->unsetProjects();
}
$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);
}
我收到该对象是私有的错误消息。
我找到了这个 post,但是上面写着,我需要在 class.
里面写一个函数Removing private properties of object
我的问题是,是否可以在 class 之外删除它?因为当我在 class 中删除它时,它总是被删除,我只想在特定情况下删除它。
你应该使用 getter 和 setter
foreach ($array as $value) {
dump($value->getProjects());
}
这是一个 Member
对象数组。对象的私有属性只能通过其方法访问。您需要找到声明 class Member
的文件。然后添加一个public class 方法来做unset。例如,
class Member {
// ...
public function unsetProjects()
{
unset($this->projects);
}
}
那么你应该可以这样做:
foreach ($array as $value) {
$value->unsetProjects();
}