Я учусь и пытаюсь понять вещи, касающиеся oop, поэтому мой вопрос может звучать очень глупо.php OOP доступ к объектам напрямую
Я хочу, чтобы иметь возможность добраться до объекта непосредственно, как это:
$some_urls = new some_urls;
print_r($some_urls->url()->illegal);
Должен ли я добавить (object)
перед каждым array()
внутри функции или есть более эффективный способ? Спасибо и извините, если повторный вопрос, я долго об этом заглядываю.
class some_urls
{
public function url()
{
return (object)array(
'illegal' => (object)array(
'a_path',
'another_path'
),
'legal' => (object)array(
'a_path',
'another_path'
)
);
}
}
EDIT: Я думаю, что я нашел лучшую альтернативу на основе некоторых идей, ребята здесь. Вы думаете, что это лучше?
$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() [ 'незаконно'] 'должны работать в последних версиях PHP. – ComFreek
в версии 5.3.10-1ubuntu3.8 это не так :( – durduvakis