在这种情况下,如何创建类的实例并在其上调用方法?

ope*_*rog 1 php

问题:我需要动态调用该类的类和方法.我唯一得到的是两个字符串:

$class = "MyClass";
$method = "myMethod";
Run Code Online (Sandbox Code Playgroud)

如何创建$ class中指定的类的实例,然后在$ method中指定的该实例上调用方法?

喜欢:

$instance = new MyClass;
$instance->myMethod();
Run Code Online (Sandbox Code Playgroud)

Mat*_*chu 12

$instance = new $class;
$instance->$method();
Run Code Online (Sandbox Code Playgroud)

就像你期望的那样.但是,显然,如果您将此作为用户输入,那么您将100%确定您根据可接受的列表验证类和方法名称.如果该类用于公共API,那么您不需要单独的白名单用于方法,但是当您采用该方法时,您肯定需要100%确定,因为允许直接用户输入到您的程序流程中非常非常危险的.