Ни при каких обстоятельствах не делайте этого для обычных методов PHP. Это открывает большую потенциальную дыру в безопасности. Даже если вы ограничите команды, которые могут быть названы таким образом, это не очень хороший способ в долгосрочной перспективе.
Либо оставайтесь с тем, что вы уже делаете: определите список команд, которые можно передать скрипту PHP (например, command=delete
, command=update
, command=copy
, что вам нужно), и вызовите их, используя switch
,
Или используйте класс с методами, которые можно безопасно вызывать извне:
class myCommands
{
function copy() { ... }
function delete() { ... }
function update() { ... }
}
затем в файле PHP введите команду, подобную
if (method_exists($class, $_POST["method"]))
call_user_func(array($class, $_POST["method"]));