root/trunk/lib/AkConverters/AkObjectToArray.php

Revision 1397, 1.8 kB (checked in by bermi, 6 months ago)

COnverting converters to PHP5

Line 
1 <?php
2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
3
4 // +----------------------------------------------------------------------+
5 // | Akelos Framework - http://www.akelos.org                             |
6 // +----------------------------------------------------------------------+
7 // | Copyright (c) 2002-2006, Akelos Media, S.L.  & Bermi Ferrer Martinez |
8 // | Released under the GNU Lesser General Public License, see LICENSE.txt|
9 // +----------------------------------------------------------------------+
10
11 /**
12  * @package ActiveSupport
13  * @subpackage Converters
14  * @author Bermi Ferrer <bermi a.t akelos c.om>
15  * @copyright Copyright (c) 2002-2006, Akelos Media, S.L. http://www.akelos.org
16  * @license GNU Lesser General Public License <http://www.gnu.org/copyleft/lesser.html>
17  */
18
19 class AkObjectToArray
20 {
21     public function convert()
22     {
23         return $this->_walkObject($this->source);
24     }
25     public function _convertNumeric($value)
26     {
27         if (is_string($value) && !ereg('\d',$value{0})) {
28             return $value;
29         } else if (is_null($value)) {
30             return null;
31         } else if (($int=intval($value))==$value+0) {
32             return $int;
33         } else if (($float = floatval($value)) == $value+0.0) {
34             return $float;
35         } else if (($double = doubleval($value)) == $value+0.0) {
36             return $double;
37         }
38         return $value;
39     }
40     public function _walkObject($obj)
41     {
42         $return = array();
43         foreach($obj as $key=>$value) {
44             if (is_object($value)) {
45                 $return[$key] = $this->_walkObject($value);
46             } else {
47                 $return[$key] = is_numeric($value)?$this->_convertNumeric($value):$value;
48             }
49         }
50         
51         return $return;
52     }
53 }
54
55 ?>
56
Note: See TracBrowser for help on using the browser.