我在函数中有这样的数组:
$value = array("name"=>"test", "age"=>"00");
我在班级abc中将这个$值公之于众。
现在在我的另一个文件中,我想访问这个数组中的值,所以我创建了一个实例:
$getValue = new <classname>;
$getValue->value..
我不知道如何继续,以便我可以访问该数组中的每个元素。
答案 0 :(得分:8)
你提到$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仅限于该函数,且不能为{{ 1}}。在函数结束时,数组将超出范围,并且所有意图和目的都不再存在。
如果这部分看起来令人困惑,我建议您阅读visibility in PHP。
答案 1 :(得分:1)
与通常使用数组相同。
$getValue = new yourClass();
$getValue->value['name'];
答案 2 :(得分:1)
使用代码
foreach($getValue->value as $key=>$value)
答案 3 :(得分:0)
<?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();
}
?>