PHP:直接从字符串返回值(字符串文字)创建一个新的类对象

时间:2015-10-23 09:17:51

标签: php class instantiation

是否有可能通过PHP中的函数或方法返回的字符串创建新对象?像一些我不知道的逃避方法?

非工作示例:

var y1=[]; 
for(var i=0;i<x.length;i++){

   y1[i]= [{ c:[ {"v":x[i].value}, {"v":x[i].date_transacted} ] }];

}

3 个答案:

答案 0 :(得分:3)

您可以使用ReflectionClass

执行此操作
function makeRef($className) {
    return new ReflectionClass($className);
}
$obj = makeRef($class->method())->newInstance();

在PHP 5.4+中,您可以将其转换为单行:

$obj = (new ReflectionClass($class->method()))->newInstance();

答案 1 :(得分:0)

您想要动态类创建吗? 这是一个阅读: http://docstore.mik.ua/orelly/webprog/pcook/ch07_13.htm

虽然可以调用动态函数,但是为类执行它似乎是一种特技。

答案 2 :(得分:-1)

是的,这是可能的。将字符串分配给变量,然后使用该变量创建对象。

<强>实施例

<?php
class stringliteral{
  function __construct()
  {
    echo"called";
  }
}
function dumyFunc()
{
  return 'stringliteral';
}
$str=dumyFunc();
if(class_exists($str))
$obj=new $str();
?>