阅读量:0
在 PHP 中,你可以使用 switch
和 case
语句来实现一个简单的状态机。这是一个示例:
<?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()
方法执行与当前状态相关的操作。