php - PHP 中带有守卫的有限状态机?

标签 php state-machine

有人知道PHP 中具有guard 功能的有限状态机吗?

最佳答案

使用 PEAR's FSM ( usage example ),如果守卫失败,您可以使用 Action 回调返回下一个状态,如下所示:

$payload = '';
$fsm = new FSM('STATE1', $payload);
function guard1($symbol, $payload) {
    if ($payload == 'something') {
        // Guard success, allow transition
        return;
    }
    else {
        // Guard fail, return to previous state
        return 'STATE1';
    }
}
$fsm->addTransition('SYMBOL1', 'STATE1', 'STATE2', 'guard1');

$fsm->process('SYMBOL1');

关于php - PHP 中带有守卫的有限状态机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7230910/

相关文章:

php - Opencart 为所有商品设置默认税级

php - 左连接MySql/PHP

php - PHP解析/语法错误;以及如何解决它们

php - laravel maatwebsite excel导出货币行

c++ - 使 boost::statecart::state_machine 线程安全的最简单方法是什么?

design-patterns - 状态机和状态模式的实现有什么区别?

php - 在 WooCommerce 订阅中获取用户 ID

c# - 这是 FuSM(模糊状态机)的正确实现吗

nlp - 如何通过编译语法来创建有限状态转换器?

c++ - 状态机表示