用match实现php中的状态机

avatar
作者
猴君
阅读量:0

在 PHP 中,你可以使用 switchcase 语句来实现一个简单的状态机。这是一个示例:

<?php  class StateMachine {     private $state;      public function __construct($initialState) {         $this->state = $initialState;     }      public function setState($newState) {         $this->state = $newState;     }      public function getState() {         return $this->state;     }      public function run() {         switch ($this->state) {             case 'state1':                 echo "Running state1\n";                 break;             case 'state2':                 echo "Running state2\n";                 break;             case 'state3':                 echo "Running state3\n";                 break;             default:                 echo "Unknown state\n";                 break;         }     } }  $stateMachine = new StateMachine('state1'); $stateMachine->run(); // Output: Running state1  $stateMachine->setState('state2'); $stateMachine->run(); // Output: Running state2  $stateMachine->setState('state3'); $stateMachine->run(); // Output: Running state3  $stateMachine->setState('unknown'); $stateMachine->run(); // Output: Unknown state 

在这个示例中,我们创建了一个名为 StateMachine 的类,它有一个私有属性 $state 用于存储当前状态。我们还定义了一些方法,如 setState()getState()run()run() 方法使用 switch 语句根据当前状态执行相应的操作。

要使用这个状态机,你需要创建一个 StateMachine 对象,并设置初始状态。然后,你可以使用 setState() 方法更改状态,并使用 run() 方法执行与当前状态相关的操作。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!