当前位置: 首页 > 面试题库 >

用字符串创建PHP类实例

索梓
2023-03-14
问题内容

我有两个课,class ClassOne { }class ClassTwo {}。我得到的字符串可以是"One""Two"

而不是使用长switch语句,例如:

switch ($str) {
    case "One":
        return new ClassOne();
    case "Two":
        return new ClassTwo();
}

有没有一种方法可以使用字符串创建实例,即new Class("Class" . $str);


问题答案:

是的你可以!

$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.


 类似资料:
  • 问题内容: 我尝试过使用字符串以多种方式创建类的实例,但是 在Swift 3中 都没有。 以下是我尝试过的无法使用的Swift 3之前的解决方案 -使课堂成为目标C课堂 -使用NSString值指定类(使用和不使用@objc属性) 我没有做正确的事,但没有在线找到任何解决方案。 如何在Swift 3中使用字符串创建类的实例? 问题答案: 您可以尝试以下方法: 像这样使用func:

  • 问题内容: 我有一个字符串形式: 依此类推(长度会有所不同)。由此创建字典的最简单方法是什么? 我知道我可以拆分,但是我无法获得正确的语法。如果我分开,那么我如何将这两个部分结合在一起? 对此进行迭代似乎很痛苦。 问题答案: 编辑:下一个解决方案是当您想要将值作为整数,我认为这是您想要的。

  • 问题内容: 我想基于由MySQL数据库中的字符串定义的类型在PHP中创建一个对象。数据库表具有以下列和样本数据: …使用PHP数据类型 我只想使用一个查询,通过ID选择一行,然后创建一个类型为Object的对象,该对象定义表的type列,并将SELECTed行中的其他列分配给新创建的对象。 我当时在想使用: 读取类型属性 创建具有由type属性定义的类型的对象 但是没有办法动态地基于字符串创建类型

  • 问题内容: 我想拥有一个从Unicode字符串创建子段的函数,例如should return 。我应该怎么做? 问题答案: 代替冗长的替换,请尝试以下方法: 这是基于Symfony的Jobeet教程中的内容。

  • 问题内容: 这是一个非常基本的问题。但是我无法在Java文档中找到答案,也无法对其进行测试,因为我不知道这种方法是否存在。 我可能会收到一个URL字符串,可能是 要么 然后我会得到可能以开头的资源路径,或者就像 我正在看课,可以处理第一部分,即获取hostURL使其成为HTTPS或HTTP请求。问题是附加资源路径。我必须手动检查它的第一个字母是否存在。我想知道此功能是否已经在某个类中。 问题答案:

  • 我想解组一个具有' 有没有办法在不使用替换/replace的情况下取消对字符串的排序?