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