为了账号安全,请及时绑定邮箱和手机立即绑定

用字符串创建PHP类实例

用字符串创建PHP类实例

PHP
慕田峪9158850 2019-11-11 10:08:16
我有两个课,class ClassOne { }和class ClassTwo {}。我得到的字符串可以是"One"或"Two"。而不是使用长switch语句,例如:switch ($str) {    case "One":        return new ClassOne();    case "Two":        return new ClassTwo();}有没有一种方法可以使用字符串创建实例,即new Class("Class" . $str);?
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

是的你可以!


$str = 'One';

$class = 'Class'.$str;

$object = new $class();

使用名称空间时,请提供标准名称:


$class = '\Foo\Bar\MyClass'; 

$instance = new $class();

您可以在php中执行的其他一些很酷的工作是:

变量变量:


$personCount = 123;

$varname = 'personCount';

echo $$varname; // echo's 123

以及可变的函数和方法。


$func = 'my_function';

$func('param1'); // calls my_function('param1');


$method = 'doStuff';

$object = new MyClass();

$object->$method(); // calls the MyClass->doStuff() method. 


查看完整回答
反对 回复 2019-11-11
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

您可以简单地使用以下语法来创建新类(如果要创建factory,这将很方便):


$className = $whatever;

$object = new $className;

作为(异常粗糙的)示例工厂方法:


public function &factory($className) {


    require_once($className . '.php');

    if(class_exists($className)) return new $className;


    die('Cannot create new "' . $className . '" class - includes not found or class unavailable.');

}


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 305 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信