脚本宝典收集整理的这篇文章主要介绍了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方法,我的请求类需要实现它并将命令名作为字符串返回.但是每个请求的代码太多了
>用抽象类替换接口.它看起来很奇怪,因为通常期望抽象类定义至少一个方法
>接口变为抽象类,并定义受保护的变量$command.它还有一个getter方法,返回$this->命令;. Children覆盖PRotected property $命令.我不喜欢将公共VARIABLES(应该是可变的)与受保护的VARIABLE混合的方式,这种VARIABLE实际上不应该是可修改的,因此不应该首先假设它是变量.
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设置为数字.
以上是脚本宝典为你收集整理的php – 强制实现接口的类来定义常量全部内容,希望文章能够帮你解决php – 强制实现接口的类来定义常量所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。