3v4l.org

run code in 300+ PHP versions simultaneously
<?php function get_variables($code) { // get all the tokens $tokens = token_get_all("<?php $code ?>"); // filter out non-variables $tokens = array_filter($tokens, function ($t) { return $t[0] == T_VARIABLE; }); // return the variable names return array_column($tokens, 1); } print_r(get_variables('$isTrue ? $a : $b')); print_r(get_variables('$a=$b * ($c + 1)'));
Output for 7.3.0 - 7.3.27, 7.4.0 - 7.4.16, 8.0.0 - 8.0.3
Array ( [0] => $isTrue [1] => $a [2] => $b ) Array ( [0] => $a [1] => $b [2] => $c )