是的,可以在PHP类定义之后向其添加方法。您需要使用classkit,它是一个“实验性”扩展。但是,这个扩展在默认情况下是不启用的,所以这取决于你是否可以编译自定义PHP二进制文件或者在windows上加载PHP dll(例如Dreamhost允许自定义PHP二进制文件,而且它们很容易设置)。
<?php
class A { }
classkit_method_add('A', 'bar', '$message', 'echo $message;',
CLASSKIT_ACC_PUBLIC);
$a = new A();
$a->bar('Hello world!');
PHP手册中的示例:
<?php
class Example {
function foo() {
echo "foo!\n";
}
}
// create an Example object
$e = new Example();
// Add a new public method
classkit_method_add(
'Example',
'add',
'$num1, $num2',
'return $num1 + $num2;',
CLASSKIT_ACC_PUBLIC
);
// add 12 + 4
echo $e->add(12, 4);