php – 强制实现接口的类来定义常量
发布时间:2020-12-13 17:53:03 所属栏目:PHP教程 来源:网络整理
导读:我愿意强制我的类定义一个名为COMMAND的常量.如果php允许覆盖接口中的常量,就会看起来像 class RequestInterface{ const COMMAND = "no-command-specified";}class LoginRequest implements RequestInterface{ const COMMAND = "loginuser"; public $usernam
我愿意强制我的类定义一个名为COMMAND的常量.如果php允许覆盖接口中的常量,就会看起来像
class RequestInterface { const COMMAND = "no-command-specified"; } class LoginRequest implements RequestInterface { const COMMAND = "loginuser"; public $username; public $password; } $request = new LoginRequest(); $request->username = "user"; $request->password = "blah"; 显然这不起作用.我正在寻找一种干净的方式来让我的请求定义COMMAND cosntant. 我一直在考虑以下选项: > Interface定义了一个getCommand方法,我的请求类需要实现它并将命令名作为字符串返回.但是每个请求的代码太多了 class LoginRequest extends BaseRequest { protected $command = "loginuser"; public $username; public $password; } 实现这一目标的最简洁方法是什么?
就个人而言,我的选择是:
interface RequestInterface { /** * @returns string */ public function getCommand(); } class LoginRequest implements RequestInterface { public function getCommand() { return "loginuser"; } ... } 您可以随时检查是否返回了带有is_string()的字符串.无论如何都没有什么可以阻止某人将COMMAND设置为数字. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |