我在學習並試圖理解與oop有關的事情,所以我的問題聽起來可能很愚蠢。php OOP直接訪問對象
我希望能夠得到一個對象直接是這樣的:
$some_urls = new some_urls;
print_r($some_urls->url()->illegal);
我必須每個array()
裏面的功能之前添加(object)
或者是有一個更有效的方法?謝謝並抱歉,如果它是重複的問題,我看這很長一段時間。
class some_urls
{
public function url()
{
return (object)array(
'illegal' => (object)array(
'a_path',
'another_path'
),
'legal' => (object)array(
'a_path',
'another_path'
)
);
}
}
編輯: 我想我發現基於一些想法,通過這裏的傢伙一個更好的選擇。 你認爲這樣比較好?
$some_urls = new some_urls;
print_r($some_urls->get_url('illegal'));
class some_urls
{
public function get_url($data)
{
$url = $this->url();
return $url[$data];
}
protected function url()
{
return array(
'illegal' => array(
'a_path',
'another_path'
),
'legal' => array(
'a_path',
'another_path'
)
);
}
}
使用任何類變量或數組,更容易 –
'$ some_urls-> url()['illegal']'應該在最近的PHP版本中工作。 – ComFreek
在版本5.3.10-1ubuntu3.8它沒有:( – durduvakis