是否有可能"覆盖" PHP中的对象方法?例如:
<?php
class Test {
function Foobar() {
echo "Foobar";
}
}
$t = new Test();
// Replace the Foobar-method with new code
$t->Foobar() = function() {
echo "New Code";
};
?>
答案 0 :(得分:0)
不,您可能无法使用anonymous functions。
虽然您可以使用显示here in the PHP documentation的__call()
或者将匿名函数分配给属性来执行类似操作,但我觉得它会很快变得难看并且很难跟踪和维护。
如果要覆盖对象方法,则应通过扩展基类并创建同名方法来实现,如Example #1 here所示。