如何访问类对象内的数组值?

Posted

技术标签:

【中文标题】如何访问类对象内的数组值?【英文标题】:How to access array values inside class object? 【发布时间】:2011-11-04 00:52:15 【问题描述】:

我在函数中有一个这样的数组:

$value = array("name"=>"test", "age"=>"00");

我在 abc 类中公开了这个 $value。

现在在我的另一个文件中,我想访问这个数组中的值,所以我通过以下方式创建了一个实例:

$getValue = new <classname>;
$getValue->value..

我不确定如何继续,这样我就可以访问该数组中的每个元素。

【问题讨论】:

请发布实际的类定义。 【参考方案1】:

您提到$value 在函数中,但是是公共的。您能否发布该函数,或澄清您的意思是在函数中声明还是实例化?

如果您正在实例化它,那很好,您可以使用数组键来索引$value,就像任何其他数组一样:

$object = new classname;
$name = $object->value["name"];
$age = $object->value["age"];

// Or you can use foreach, getting both key and value
foreach ($object->value as $key => $value) 
    echo $key . ": " . $value;

但是,如果您在函数中声明 public $value,那么这是一个语法错误。

此外,如果您声明 $value(在函数内)没有 public 修饰符,则其 scope 仅限于该函数,并且不能是 public。该数组将在函数结束时超出范围,并且出于所有意图和目的将不复存在。

如果这部分看起来令人困惑,我建议阅读visibility in php

【讨论】:

【参考方案2】:

就像你通常使用数组一样。

$getValue = new yourClass();
$getValue->value['name'];

【讨论】:

他还说 $value 是他类中的公共变量,因此可以访问。 @Rob 我明白了,但他说 class 所以class abc public $var; $this-&gt;var['test'] = '1'; $object = new abc(); echo $object-&gt;var['test']; //Outputs 1 感谢你们俩。 @rob,对不起,我没有让你编辑问题和投票。【参考方案3】:

使用代码

foreach($getValue->value as $key=>$value)

【讨论】:

【参考方案4】:
    <?php
        interface Nameable 
            public function getName($i);
            public function setName($a,$name);
        
        class Book implements Nameable 
            private $name=array();
            public function getName($i) 
                return $this->name[$i];
            
            public function setName($i, $name) 
                return $this->name[$i] = $name;
            
        

        $interfaces = class_implements('Book');

        if (isset($interfaces['Nameable'])) 
            $bk1 = new Book;
            $books = array('bk1', 'bk2', 'bk3', 'bk4', 'bk5');
            for ($i = 0; $i < count($books); $i++)
                $bk1->setName($i, $books[$i]);
            for ($i = 0; $i < count($books); $i++)
                echo '// Book implements Nameable: ' . $bk1->getName($i) . nl();
        
?>

【讨论】:

以上是关于如何访问类对象内的数组值?的主要内容,如果未能解决你的问题,请参考以下文章

如何从外部访问类内的自我对象

如何在 Vue3 中使用数组访问反应对象内的数据?

创建和访问类对象的动态数组

如何从基对象的派生类访问函数

(4.3)数组对象及类数组对象,set的用法,正则表达式的常用方法,蓝桥杯备赛-(生成数组数组去重实现模板字符串的解析新课上线啦)

对象如何创建,布局?如何访问数据