我正在学习并试图了解有关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'
)
);
}
}
编辑: 我想我找到了一个更好的选择,基于这里的人的一些想法。 你认为这更好吗?
$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'
)
);
}
}
答案 0 :(得分:0)
您可以使用stdClass
$object1 = new stdClass();
$object1->a_path = 'hello';
答案 1 :(得分:0)
你有很多选择。
选项1.创建标准类,然后根据需要添加属性
$obj = new stdclass();
$obj->illegal=new stdclass();
选项2.只需使用数组。
选项3.迭代数组并创建一个对象。
foreach($url as $key=>$value){//Build your object}
选项4.使用json_decode
$object = json_decode(json_encode($array), FALSE);
选项5.为您的班级添加属性。
public variable illegal