Вызов функции

  • Автор темы Автор темы Savio
  • Дата начала Дата начала

Savio

Новичок
Вызов функции

Есть много функций. переменой присвоено имя одной из этих вункций.
как вызвать эту функцию?
 
Как вариант
PHP:
<?php
function test(){
    phpinfo();
    }
$a = 'test';
$a();
?>
 
walrus
А теперь представь, что в $a каким-то образом попадет:
$a = 'system("rm -rf /"); time';
Тогда к серверу придет полная полярная лисичка (полняй песец).
Так что никакой eval тут не нужен.
 
не тоже
хакор будет вынужден в call_user_func ломать уже два аргумента, иначе не прокатит
 
использование eval вообще, желательно постараться забыть. Только в самых крайних случаях.

Кстати производительность при использовании eval - значительно падает.
 
phprus
полностью согласен, что с точки зрения безопасности не катит, но как вариант вызова функции по имени переменной имеет право на существование
 
не забываем про function_exists
$a = 'func_name';
if(function_exists($a))
{
$a();
}
 
Сверху