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

// 日志工具基类

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 变量就是有值的。

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

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

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

  1. [已解决]Keil 中出现No Browse Information available in ‘工程文件‘的

    在查看程序时想要Go to Definition of  'xxx' 但是会出现如图所示的提醒: 解决方法: 点击魔术棒,再在Output的选项中勾选Browse Information,如此就可以正 ...

  2. linux少了 dev dm设备,已解决: Linux中安装了powerpath之后为什么还会有dm设备? - Dell Community...

    在RHEL6.3中安装了powerpath5.7之后,OS上已经正确生成了emcpower磁盘设备(使用CX4-240存储),并配置到LVM中使用.但是今天发现,使用iostat命令时,可以看到dm设 ...

  3. (已解决torchvision中CIFAR10下载速度慢)如何下载以及使用torchvision导入

    背景 train_set = torchvision.datasets.CIFAR10(root='./data', train=True,download=True, transform=trans ...

  4. (20200208已解决)PyCharm中Tab键无效

    问题描述 新装的PyCharm,Tab可以缩进一行,但是当选择多行时,Tab键无效. 问题解决 因为安装时候选择了安装Vim并启用(就是安装界面推荐的第一项). File–Settings–Plugi ...

  5. {已解决}IDEA中的lombok插件搜索不到的问题

    首先点击 点击完毕后,关闭IDEA重启,然后再次搜索Lombok,就能找得到啦!! 如果不可以的话,还可以通过IDEA官方插件网站搜索Lombok插件并下载哦. 下载后进行本地的选中安装即可.

  6. 【已解决】MATLAB未定义函数或变量 ‘wavread‘,以及audioread,audiowrite,wavwrite

    报错 MATLAB未定义函数或变量 'wavread'. 原因 wavread在当前Matlab版本中废弃,需要改成audioread,同理wavwrite也需要改为audiowrite. 注意 在更 ...

  7. php成员属性的声明方式,PHP中如何定义类及其成员属性与操作_PHP教程

    类的概念:类是具有相同属性和操作的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属 ...

  8. 已解决‘pyhton‘不是内部或外部命令,也不是可运行的程序或批处理文件。

    已解决(安装python解释器配置环境变量后,在cmd内运行报错问题)'pyhton'不是内部或外部命令,也不是可运行的程序或批处理文件. 文章目录 报错代码 报错原因 解决方法 千人全栈VIP答疑群 ...

  9. C/C++中静态变量

    C/C++中的静态变量 1. 静态全局变量 2.静态局部变量 3. 静态函数 4.类内静态成员变量 5. 类内静态局部变量 6.类内静态函数 C语言中与"静态"相关的词包括,静态全 ...

最新文章

  1. LCA(树上倍增 || rmqlca||)
  2. git在已忽略文件夹中不忽略指定文件
  3. springboot整合rabbitmq(搭建)
  4. FutureTask使用
  5. JavaScript实现页面滚动到div区域div以动画方式出现
  6. 走近分形与混沌(part4)--牛顿与混沌
  7. linux下socket连接下的心跳机制
  8. 《算法:C语言实现》——连通性
  9. R语言︱非结构化数据处理神器——rlist包
  10. 小程序的全栈开发新时代
  11. Android Hessian 通信
  12. 时序轮转的意思_《九州仙魔志》-烛龙:凡人的昼夜轮转,都在它眼睛开合之间...
  13. MATLAB求二阶隐函数导数,matlab隐函数求导
  14. 推荐2021年最受欢迎的15款Vue后台管理模板
  15. win10 cuda13 pytorch pycharm
  16. Balsamiq-Mockups-Introduction.html
  17. OSChina 周五乱弹 ——论HR的日常心塞
  18. 多线程 MODEN 串口编程
  19. Win7如何开启Aero特效?
  20. CpG ODN——艾美捷ODN 1826 (TLRGRADE)说明书

热门文章

  1. 触发器_触发器第三弹
  2. 导入数据_导入外部数据的三个技巧
  3. 华为云NP考试题库_阿里云ACP大数据及云计算经验感悟
  4. Linux开机启动过程(8):初期中断(缺页中断)和异常处理
  5. Just For Fun-用java编个线性回归(一次函数拟合)的图形界面
  6. 我的世界服务器自定义怪物怎么用,我的世界怪物属性自定义教程 怪物属性代码一览...
  7. java压缩源代码_【免费毕设】JAVA文件压缩与解压缩实践(源代码+论文)
  8. python读取数据库数据、并保存为docx_Python - 爬取博客园某一目录下的随笔 - 保存为docx...
  9. python使用turtle步骤_Python+turtle交互式绘图:可以用鼠标拖动的小海龟
  10. Xshell如何操作linux