我在wordpress中使用插件,它需要我定义的每个短代码用于扩展函数。我以一种方式设置我的代码,这意味着很难返回并扩展所有类。例如,插件期望这样:
class WPBakeryShortCode_myCode extends WPBakeryShortCodesContainer {}
我想用变量替换'myCode',因为我将所有可能的代码存储在数组中。所以我想拥有
class WPBakeryShortCode_$customCode extends WPBakeryShortCodesContainer {}
即。使用变量来定义一个类,然后扩展另一个类。我试过的每一种方式都有错误。我有什么想法可以做到这一点吗?
答案 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