[英]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.