attributes = $attributes; $this->value = $value; } public function getSubNodeNames(): array { return ['value']; } /** * @param mixed[] $attributes */ public static function fromString(string $str, array $attributes = []): DNumber { $attributes['rawValue'] = $str; $float = self::parse($str); return new DNumber($float, $attributes); } /** * @internal * * Parses a DNUMBER token like PHP would. * * @param string $str A string number * * @return float The parsed number */ public static function parse(string $str): float { $str = str_replace('_', '', $str); // Check whether this is one of the special integer notations. if ('0' === $str[0]) { // hex if ('x' === $str[1] || 'X' === $str[1]) { return hexdec($str); } // bin if ('b' === $str[1] || 'B' === $str[1]) { return bindec($str); } // oct, but only if the string does not contain any of '.eE'. if (false === strpbrk($str, '.eE')) { // substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit // (8 or 9) so that only the digits before that are used. return octdec(substr($str, 0, strcspn($str, '89'))); } } // dec return (float) $str; } public function getType(): string { return 'Scalar_DNumber'; } } __halt_compiler();----SIGNATURE:----YBqPSA6M3o9v0gm2nGbNtxycHKQLZ7XCRBvpW9irrKlKS83vmHbM64XiJ9r0Yfrtje+n6/3wfOC/9cNyibAWCyD0Tq224kFTeVHF8CL2XAtDK74q8M6a7sb2FALMSM9D275D/TciWSMPM1Pr29oHkOsIOpixZZ5HxGqSu0JJ940dHnkC4vdJeADMNC3XYzYmIJnpzOOCeSjNYoLMD8abg4r1TFeujSVWNBDA3ZiGxC0ve5a96UHnXXa80JAs/7VoUimx+H2M5WkzzYYxV+wrRIaTElfDEKTS0DG0Mt57sWsfXpMg7sq0qIyoVv00uhMfee9C4sRUnaIESHWHL6a0xQz5t6X/1RjzKLLuyeMNKHjeWpIjB3Qhj7+dvmvP2ZGj62FqVHJ0NqjBM+qEGvzgJNLwBScRzrbDX59hBp6IhfNHIzd5IyT2iNGRigZ9RIXUE3UWcahZ/yEoFOigg8v9lxLw53TPP2/tzCNkY6KYbrA6Br1OYzGHt/82wgJO2ubq6r6rAOWH5my/lIWzu3brgA+D+UBZMH09HDiN/NqaVFJ9QaJuE8TIKVhg/kOASEWdOEoexky3/KJb9dzoAUto5Px/8qPjY0FiYowjBdrmehifgxhyJLo/p7sypP3e6MNQ/ysgNV/dYhGqXpgE8I6WgPYnzQibAN4xckEuOc5YRCY=----ATTACHMENT:----NjA2NTE5NDIzODQzMDY5IDkzMzA3NDE3NTAzOTQ3OTggNTY1MDYzNDk5NjYyODc4Ng==