php 静态 成员属性,[已解决]php中静态成员方法和静态成员变量是不是不支持多态?...

各位大神好,我实现了一个日志工具基类,并派生了两个子类,一个是运维日志类,一个是业务日志类,并在基类中设置了一个静态变量希望能用以区分两个子类,但在调用静态方法时,实际上完全不是想象中的情况,代码如下:

// 日志工具基类

class LogTool

{

protected static $type;

public static function debug($msg) {

switch (self::$type) {

case 'biz':

echo '把日志写入数据库表1';

break;

case 'opt':

echo '把日志写入数据库表2';

break;

default:

echo 'error';

}

}

// 其他代码省略

}

// 运维日志类

class OptTool extends LogTool

{

protected static $type = 'opt';

}

// 业务日志类

class BizTool extends LogTool

{

protected static $type = 'biz';

}

// 调用代码

BizTool::debug('王小虎已登录');

代码如上,实际上函数 dosomething 的运行情况是每次都输出 'error',因为在执行静态方法debug时,静态成员 $type 是空值;

但是如果我把 debug 函数在子类中再实现一次,则运行时 $type 变量就是有值的。

可是这样做就完全没意义了,抽象父类出来就是为了减少重复代码的,现在两个子类除了写入日志的表不同,其他完全相同,结果这样的结果弄得我欲哭无泪。

恳请大神们指点一二,万分感谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值