繁体   English   中英

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

[英]How to access array values inside class object?

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

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

我在班级abc中将这个$ value公之于众。

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

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

我不知道如何继续,以便我可以访问该数组中的每个元素。

你提到$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 ,那么这就是语法错误。

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

如果这部分看起来令人困惑,我建议阅读PHP中的可见性

与通常使用数组相同。

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

使用代码

foreach($getValue->value as $key=>$value)
    <?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();
        }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM