PHP上的事件。可能吗?

PHP上的事件。可能吗?,php,events,language-features,Php,Events,Language Features,我来自C#世界,刚刚开始做一些PHP编码,所以我想知道是否可以在PHP上使用事件,或者是否计划在未来的版本中包含此功能。如果您有一种不同于的方法来模拟它,那将非常感激,谢谢。在PHP中没有类似于C的事件,但您可以实现一个要通知的to Attached委托。这是一个事件驱动的框架,可能会吸引您,特别是因为您来自C#的国度,大概是ASP.NET 请看下面的图片。具体来说,请查看控件引用下的代码。有很多代码示例供您查看,看看它是否与您正在寻找的类似。Stubbles有一个非常好的功能。SPL-提供了在

我来自C#世界,刚刚开始做一些PHP编码,所以我想知道是否可以在PHP上使用事件,或者是否计划在未来的版本中包含此功能。如果您有一种不同于的方法来模拟它,那将非常感激,谢谢。

在PHP中没有类似于C的事件,但您可以实现一个要通知的to Attached委托。

这是一个事件驱动的框架,可能会吸引您,特别是因为您来自C#的国度,大概是ASP.NET


请看下面的图片。具体来说,请查看控件引用下的代码。有很多代码示例供您查看,看看它是否与您正在寻找的类似。

Stubbles有一个非常好的功能。

SPL-提供了在PHP中实现observer模式的功能和接口。

我也建议使用Prado。

您可以在PHP中创建类似事件处理类的功能:

class Event {
    protected $_eventCallbacks = array();
    function addEventCallback($callback) {
        $this->_eventCallbacks[$callback] = $callback;
    }
    function removeEventCallback($callback){
        if(isset($this->_eventCallbacks[$callback])){
            unset ($this->_eventCallbacks[$callback]);
        }
    }
    function cleanEventCallback(){
        foreach ($this->_eventCallbacks as $callback) {
            unset ($callback);
        }
    }
    function fireEvent() {
        foreach ($this->_eventCallbacks as $callback) {
            call_user_func($callback);
        }
    }
}
这个密码是从这里取的
还有一个使用这个类的模块化和子模块化应用程序的好例子

对不起,我不明白你的评论。。。我不会说英语,所以如果我犯了一个错误,我会请求任命。你可以使用函数指针来实现粗糙的事件处理,但是如果你期望C#delegate的适合和完成,你会失望的。是的,事件处理最多也会粗糙。保持低期望值。@Earlz-我想你指的是变量函数。约翰尼,看看这个:第二个例子,“示例#2变量方法示例”可能会对你有所帮助。@Richard,添加到工具箱中的好技巧:D