PHP:似乎无法访问对象中的数组属性 [英] Php: Cannot seem to access array property in object

查看:81
本文介绍了PHP:似乎无法访问对象中的数组属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一堂课,叫做会员。我正在尝试将多维数组添加为这样的属性:

I have a class called Member. I am trying to add a multidimensional array as a property like so:

class Member {

public $name;
public $inheritingMembers;

public function __construct($name, $family) {
    $this->name = $name;
    $this->inheritingMembers = $this->findInheritingMembers($family, $name);
}

function findInheritingMembers($array, $keySearch) {
    foreach ($array as $key => $item){
        if ($key == $keySearch){
            return $item['children'];
        } else {
            if (is_array($item))
                $this->findInheritingMembers($item, $keySearch);
        }
    }
    return false;
}

}

函数 findInherititngMembers返回一个我可以在var_dump()中看到的多维数组。问题是,我似乎无法将此数组分配为Member对象的InheritingMembers属性。

The function "findInherititngMembers" returns a multidimensional array which I can see with var_dump(). The problem is, I cannot seem to assign this array as the inheritingMembers property of the Member object.

推荐答案

我认为您还需要另一个返回递归函数:

I think you need another return in your recursive function:

function findInheritingMembers($array, $keySearch) {
    foreach ($array as $key => $item){
        if ($key == $keySearch){
            return $item['children'];
        } else {
            if (is_array($item))
                return $this->findInheritingMembers($item, $keySearch);
        }
    }
    return false;
}

这篇关于PHP:似乎无法访问对象中的数组属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆