我正在尝试使用OOP和PHP。
我不知道为什么我需要做这样的事情,但我想知道如何做到这一点并且无法在网上找到它。
class Example{
public $a = 'aye';
public $b = 'bee';
public $c = 'see';
public function how(){
return (object)array(
$this->a,
$this->b,
$this->c
);
}
}
$example = new Example;
$how = $example->how();
echo $how->1; //I thought would print bee
我知道提供数组键会让我这样做
echo $how->beekey //which would give me beekey's value
答案 0 :(得分:2)
这基本上是不可能的,如bug report中所述;数字对象属性在PHP中是一种灰色区域。
但是,您可以将对象强制转换回数组并引用值:
$arr = (array)$how;
echo $arr[1];
或者,作为单行使用:
echo current(array_slice((array)$how, 1, 1));
我能给你的最好建议是不要把它变成一个对象:
public function how()
{
return array(
$this->a,
$this->b,
$this->c
);
}
然后将其引用为$how[1]
。
顺便说一下,PHP 4中的$how->{1}
used to work:)
答案 1 :(得分:0)
如何使用循环?
foreach($how as $value)
{
echo $value .'<br>'; //this print your values: aye<br>bee<br>see
}