I know that this question is asked very often, but I did not find out how to do it, as if I want it to be.
So basically I have this array.
array(7) { ["site"]=> array(5) { ["production"]=> bool(false) ["url"]=> string(29) "http://localhost/" ["name"]=> string(6) "Sitename" ["title"]=> string(7) ": Index" ["pagedata"]=> array(1) { ["default"]=> string(5) "Index" } } ["DB"]=> array(5) { ["host"]=> string(9) "localhost" ["user"]=> string(4) "root" ["pass"]=> string(4) "secret" ["database"]=> string(12) "database" ["engine"]=> string(7) "eMySQLi" } ["cache"]=> array(2) { ["file"]=> array(1) { ["time"]=> int(500) } ["memcache"]=> array(2) { ["my_first_vps_ip"]=> string(17) "my_first_vps_port" ["my_second_vps_ip"]=> string(18) "my_second_vps_port" } } ["skin"]=> array(2) { ["name"]=> string(9) "thehabbos" ["mobile"]=> array(2) { ["enabled"]=> bool(true) ["name"]=> string(16) "mobile_thehabbos" } } ["lang"]=> array(1) { ["name"]=> string(7) "English" } ["widget"]=> array(1) { ["default"]=> string(7) "Icecron" } ["cron"]=> array(1) { ["DatabaseBackup"]=> array(1) { ["execute_every"]=> int(86400) } } }
So, if I "parse" this array (convert the array to an object) using this method ...
private function parse($arr) { foreach ($arr as $key => $val) { $this->{$key} = is_array($val) ? $this->parse($val) : $val; } return $this; }
I will get something like ...
object(Configure)#3 (27) { ["production"]=> bool(false) ["url"]=> string(29) "http://localhost/RevFramework" ["name"]=> string(7) "English" ["title"]=> string(7) ": Index" ["default"]=> string(7) "Icecron" ["pagedata"]=> *RECURSION* ["site"]=> *RECURSION* ["host"]=> string(9) "localhost" ["user"]=> string(4) "root" ["pass"]=> string(4) "root" ["database"]=> string(12) "rev_database" ["engine"]=> string(7) "eMySQLi" ["DB"]=> *RECURSION* ["time"]=> int(500) ["file"]=> *RECURSION* ["my_first_vps_ip"]=> string(17) "my_first_vps_port" ["my_second_vps_ip"]=> string(18) "my_second_vps_port" ["memcache"]=> *RECURSION* ["cache"]=> *RECURSION* ["enabled"]=> bool(true) ["mobile"]=> *RECURSION* ["skin"]=> *RECURSION* ["lang"]=> *RECURSION* ["widget"]=> *RECURSION* ["execute_every"]=> int(86400) ["DatabaseBackup"]=> *RECURSION* ["cron"]=> *RECURSION* }
So I could use it like this.
echo $this->url;
But what I want to do is use it like this.
echo $this->site->url;
Any idea on how I could do this, if possible?
source share