我正在编写一个包装类,用于在 php 中更新API作业的状态。如何检查传递到update_status()
的状态是否是定义的常量之一?有没有更好的方法来构建它?
class ApiJob {
const QUEUED = "QUEUED";
const RUNNING = "RUNNING";
const FAILED = "FAILED";
const COMPLETE = "COMPLETE";
public static function update_status($id, $new_status) {
}
}
用法是:
ApiJob::update_status(43842, ApiJob::RUNNING);
答案 0 :(得分:1)
在你的update_status函数中,检查$ new_status是否为4个选项之一,如果不是则抛出异常。
switch ($new_status)
{
case self::QUEUED:
case self::RUNNING:
case self::FAILED:
case self::COMPLETE:
// Set the status here.
break;
default:
throw new Exception("Status is not allowed.");
}