所以我试图实现某种插件机制,从外部PHP文件添加匿名函数。
以下是示例代码:
<?php
// class_def.php
class MyClass {
function __construct() {
$this->property = "some_value";
$this->callback = array();
include_once("plugin.php");
}
}
$instance = new MyClass();
$instance->callback[0]();
<?php
// plugin.php
$this->callback[] = function() {
var_dump($this->property); // Doesn't work in PHP 5.3
};
上面的代码(两个文件)在PHP 5.4中有效,但在PHP 5.3中不起作用。
所以我的问题是:更好的想法将代码分成两个文件?我可能需要修改实例的属性并在单独的文件中访问$this
。