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



我正在使用WordPress中的插件,该插件要求我定义的每个快捷代码用于扩展功能。我以某种方式设置了代码,这意味着很难返回并扩展所有类。例如,插件期望以下内容:

class WPBakeryShortCode_myCode extends WPBakeryShortCodesContainer {}

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

class WPBakeryShortCode_$customCode extends WPBakeryShortCodesContainer {}

即。使用变量定义一个类,然后扩展另一个类。我尝试过的各种方式都会遇到一个错误。有什么想法我该怎么做?

您无法在运行时实例化。

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

使用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

最新更新