php如何定义和使用常量,如何在php函数中使用常量作为参数定义?

你有

hinted PHP期待一个FetchMode实例(就像它在错误消息中所说的那样),但是FetchMode :: FETCH *传递常量值.你必须使用某种Enum实例(我们在PHP中没有本地实例.(哦,有SplEnum,但谁使用它?))或更改方法签名以排除typehint.

public function getRecordSet($mode)

{

switch ($mode) {

case FetchMode::ALL:

// code to do a fetchAll

break;

case FetchMode::ONE:

// code to do a fetchOne

break;

default:

}

}

这将增加你的类的Cylcomatic Complexity并强制更改到该类和FetchMode,只要你需要添加额外的FetchModes,你可以这样做:

public function getRecordSet(FetchMode $fetchModeStrategy)

{

return $fetchModeStrategy->fetch();

}

interface FetchMode

{

public function fetch();

}

并为每个支持的FetchMode添加具体的FetchMode类

class FetchOne implements FetchMode

{

public function fetch()

{

// code to fetchOne

}

}

class FetchAll …

class FetchRow …

这样,您将永远不必再次使用该getRecordSet方法触及该类,因为它适用于实现该FetchMode接口的任何类.因此,无论何时有新的FetchModes,您只需添加一个新类,从长远来看,它更易于维护.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值