ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
Double.php
Go to the documentation of this file.
1 <?php
2 
3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
4 
5 // LICENSE AGREEMENT. If folded, press za here to unfold and read license {{{
6 
40 // }}}
41 
42 // dependencies {{{
43 require_once 'XML/RPC2/Exception.php';
44 require_once 'XML/RPC2/Backend/Php/Value/Scalar.php';
45 // }}}
46 
58 {
59 
60  // {{{ constructor
61 
67  public function __construct($nativeValue)
68  {
69  $this->setScalarType('double');
70  $this->setNativeValue($nativeValue);
71  }
72 
73  // }}}
74  // {{{ decode()
75 
81  public static function decode($xml)
82  {
83  // TODO Remove reparsing of XML fragment, when SimpleXML proves more solid. Currently it segfaults when
84  // xpath is used both in an element and in one of its children
85  $xml = simplexml_load_string($xml->asXML());
86  $value = $xml->xpath('/value/double/text()');
87 
88  // Double cast explanation: http://pear.php.net/bugs/bug.php?id=8644
89  return (double) ((string) $value[0]);
90  }
91 
92  // }}}
93 
94 }
95 
96 ?>