php 强制定义类型,php – 强制实现接口的类来定义常量

我愿意强制我的类定义一个名为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方法,我的请求类需要实现它并将命令名作为字符串返回.但是每个请求的代码太多了

>用抽象类替换接口.它看起来很奇怪,因为通常期望抽象类定义至少一个方法

>接口变为抽象类,并定义受保护的变量$command.它还有一个getter方法,返回$this->命令;. Children覆盖protected property $命令.我不喜欢将公共VARIABLES(应该是可变的)与受保护的VARIABLE混合的方式,这种VARIABLE实际上不应该是可修改的,因此不应该首先假设它是变量.

class LoginRequest extends BaseRequest

{

protected $command = "loginuser";

public $username;

public $password;

}

实现这一目标的最简洁方法是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值