@ 2013-07-15T01:55:12Z <?php
$input = '((\'rats\' + \'stoats\') - 800 / 2)';
$tokens = token_get_all("<?php {$input}");
$expr = '';
foreach($tokens as $token){
if(is_string($token)){
if(in_array($token, array('(', ')', '+', '-', '/', '*'), true)){
$expr .= $token;
print "\n symbol: " . $expr;
}
continue;
}
list($id, $text) = $token;
if(in_array($id, array(T_DNUMBER, T_LNUMBER,T_CONSTANT_ENCAPSED_STRING))){
$expr .= $text;
print "\n number: " . $expr;
}
}
eval("\$result = {$expr};");
print "\nexpr = " . $expr;
print "\nres = " . $result;
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 symbol: (
symbol: ((
number: (('rats'
symbol: (('rats'+
number: (('rats'+'stoats'
symbol: (('rats'+'stoats')
symbol: (('rats'+'stoats')-
number: (('rats'+'stoats')-800
symbol: (('rats'+'stoats')-800/
number: (('rats'+'stoats')-800/2
symbol: (('rats'+'stoats')-800/2)
Fatal error: Uncaught TypeError: Unsupported operand types: string + string in /in/ohVeJ(28) : eval()'d code:1
Stack trace:
#0 /in/ohVeJ(28): eval()
#1 {main}
thrown in /in/ohVeJ(28) : eval()'d code on line 1
Process exited with code 255 . Output for 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 symbol: (
symbol: ((
number: (('rats'
symbol: (('rats'+
number: (('rats'+'stoats'
symbol: (('rats'+'stoats')
symbol: (('rats'+'stoats')-
number: (('rats'+'stoats')-800
symbol: (('rats'+'stoats')-800/
number: (('rats'+'stoats')-800/2
symbol: (('rats'+'stoats')-800/2)
Warning: A non-numeric value encountered in /in/ohVeJ(28) : eval()'d code on line 1
Warning: A non-numeric value encountered in /in/ohVeJ(28) : eval()'d code on line 1
expr = (('rats'+'stoats')-800/2)
res = -400 Output for 4.3.0 - 4.3.11 , 4.4.0 - 4.4.9 , 5.0.0 - 5.0.5 , 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 , 5.3.0 - 5.3.29 , 5.4.0 - 5.4.45 , 5.5.0 - 5.5.36 , 5.6.0 - 5.6.28 , 7.0.0 - 7.0.20 symbol: (
symbol: ((
number: (('rats'
symbol: (('rats'+
number: (('rats'+'stoats'
symbol: (('rats'+'stoats')
symbol: (('rats'+'stoats')-
number: (('rats'+'stoats')-800
symbol: (('rats'+'stoats')-800/
number: (('rats'+'stoats')-800/2
symbol: (('rats'+'stoats')-800/2)
expr = (('rats'+'stoats')-800/2)
res = -400 preferences:dark mode live preview
277.67 ms | 404 KiB | 392 Q