diff options
author | arron.woods <arron.woods@deae1e92-32f9-c189-e222-5b9b5081a27a> | 2011-04-21 17:39:31 +0000 |
---|---|---|
committer | arron.woods <arron.woods@deae1e92-32f9-c189-e222-5b9b5081a27a> | 2011-04-21 17:39:31 +0000 |
commit | d855c85f1609621a346041865a65b52caa47fa69 (patch) | |
tree | 4d85b419e209c9ca68eb1de0c912e65a13b317a1 /library/SSRS/Object/Abstract.php | |
parent | 306a0590f66f48f9df588667194682982dcdcf4f (diff) | |
download | php-ssrs-d855c85f1609621a346041865a65b52caa47fa69.zip php-ssrs-d855c85f1609621a346041865a65b52caa47fa69.tar.gz php-ssrs-d855c85f1609621a346041865a65b52caa47fa69.tar.bz2 |
Removed nbproject
Diffstat (limited to 'library/SSRS/Object/Abstract.php')
-rwxr-xr-x | library/SSRS/Object/Abstract.php | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/library/SSRS/Object/Abstract.php b/library/SSRS/Object/Abstract.php index 40482a0..4658b48 100755 --- a/library/SSRS/Object/Abstract.php +++ b/library/SSRS/Object/Abstract.php @@ -19,12 +19,10 @@ class SSRS_Object_Abstract { } public function setData($data) { - if ($data instanceof stdClass) { - $data = get_object_vars($data); - } + $clean = $this->_sanitizeData($data); - if (is_array($data)) { - foreach ($data AS $key => $value) { + if (is_array($clean)) { + foreach ($clean AS $key => $value) { $this->$key = $value; } } @@ -41,6 +39,20 @@ class SSRS_Object_Abstract { } } + protected function _sanitizeData($data, $recursive = false) { + if (is_object($data)) { + $data = get_object_vars($data); + } + + if ($recursive && is_array($data)) { + foreach ($data AS $key => $value) { + $data[$key] = $this->_sanitizeData($value); + } + } + + return $data; + } + public function __get($key) { return isset($this->data[$key]) ? $this->data[$key] : null; } |