class AjaxCallableFunction
{
public static $callable_from_ajax = TRUE;
}
$class = $_POST['class'];
$method = $_POST['method'];
if ( class_exists( $class ) && isset( $class::$callable_from_ajax ) && $class::$callable_from_ajax ) {
call_user_func( $class, $method );
}
结合其他一些答案以获得最佳效果.需要PHP 5.3.0或更高版本.你甚至可以实现一个接口
interface AjaxCallable {}
class MyClass implements AjaxCallable
{
// Your code here
}
$class = $_POST['class'];
$method = $_POST['method'];
if ( class_exists( $class ) && in_array( 'AjaxCallable', class_implements( $class ) ) ) {
call_user_func( $class, $method );
}
这种方法遵循OOP原则,非常冗长(易于维护),并且不要求您维护可以调用哪些类的数组,哪些不能.