从变量创建类并使用它来扩展另一个类?

时间:2017-06-25 10:26:25

标签: php oop

我在wordpress中使用插件,它需要我定义的每个短代码用于扩展函数。我以一种方式设置我的代码,这意味着很难返回并扩展所有类。例如,插件期望这样:

class WPBakeryShortCode_myCode extends WPBakeryShortCodesContainer {}

我想用变量替换'myCode',因为我将所有可能的代码存储在数组中。所以我想拥有

class WPBakeryShortCode_$customCode extends WPBakeryShortCodesContainer {}

即。使用变量来定义一个类,然后扩展另一个类。我试过的每一种方式都有错误。我有什么想法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您无法在运行时从变量中实例化一个。

没有推荐的动态方法,因为生成的类必须在评估变量之前进行实例化

使用Eval是不好的做法,不推荐,如果你想知道这是怎么样的

akshay@db-3325:/tmp$ cat test.php 
<?php

class A { }
class B { 
     function iamB(){
         print "From B".PHP_EOL;
     }
}

$myvariable = 'B';  


$code =<<<EOF
  class C extends $myvariable { 
    public static function bar(){
      print "not recommended".PHP_EOL; 
    }
  }
EOF;

eval( $code );

C::iamB();
C::bar();

?>

<强>输出

akshay@db-3325:/tmp$ php test.php 
From B
not recommended