我正在使用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