Это действительно нехорошо, надеюсь, это нужно только для отладки.Затем вы должны найти разницу между ключами массивов, которые возвращает get_defined_vars
, а не между их значениями:
$diff = array_diff(array_keys($second),array_keys($first));
Если вы не хотите включать свой файл, более сложный способ будет использовать Tokenizer
:
$tokens = token_get_all(file_get_contents("include_vars.php"));
foreach($tokens as $token) {
if ($token[0] == T_VARIABLE)
echo $token[1] . ', ';
}
Это вернуло бы все переменные, даже не глобальные и те, которые были не установлены в этом скрипте (!)