php获取数组值

时间:2014-08-30 16:41:14

标签: php arrays

我有一个名为inputs的数组:

Array ( [0] => InputValidation Object ( [array:InputValidation:private] => Array ( [Id] => demo1 [Required] => [MinLength] => 10 [MaxLength] => [RegexName] => [RegexMsg] => ) ) [1] => InputValidation Object ( [array:InputValidation:private] => Array ( [Id] => demo2 [Required] => [MinLength] => 20 [MaxLength] => [RegexName] => [RegexMsg] => ) ) )

我必须获得值Id,Required,MinLength,MaxLength,RegexName和RegexMsg。我试图像这样预言

foreach ($this->inputs as $input){
            echo $input['Id'];
        }

但是它给了我一个错误:不能使用InputValidation类型的对象作为数组

我该怎么办?感谢

2 个答案:

答案 0 :(得分:1)

inputs是一个数组,其中第一个元素(索引0)是一个对象。

但是在循环中,您尝试回显对象属性,就像对象是数组一样。

尝试:

foreach ($this->inputs as $input){
  echo $input->Id;
}

与JavaScript相比,使用[]访问器无法访问PHP中的对象,您必须使用->访问者。

答案 1 :(得分:0)

是的我犯了一个错误。 数组输入具有第一个索引,其对象为InputValidation。 该对象还有一个名为InputValidation的PRIVATE属性(它是一个关联数组,位于您正在寻找的IdIindex)。

但这个属性是私有的。您无法直接访问它。你需要一个对象InputValidation的方法。

如果这个属性不是私有的而是公开的,那么你可以按照以下方式访问它:

inputs [0]-> InputValidation-> InputValidation['Id'];

第一条建议:避免使对象具有与此对象同名的属性。那令人困惑(我被困在里面!)

第二条建议:阅读有关您正在使用的对象和PHP对象文档的文档。

Comfreek的建议看起来像PHP中的新功能或需要熟悉它的东西。