dsdioa9545 2016-03-02 22:09
浏览 139
已采纳

非静态方法tNG_log :: log()不应该静态调用,假设来自不兼容的上下文的$ this

I am getting the above error - here is the code that it is referring to:

function executeTransaction() {
        tNG_log::log('tNG' . $this->transactionType, 'executeTransaction', 'begin');
        if ($this->started) {
            tNG_log::log('tNG' . $this->transactionType, 'executeTransaction', 'end');
            return false;
        }

I am unsure how to edit the above code effectively to make the error message go away. I am aware that I can edit the php.ini file so that these errors do not show, however I would rather fix the code

  • 写回答

1条回答 默认 最新

  • doulu3399 2016-03-02 22:23
    关注

    The method log() of the class tNG_log() is not defined as a static function. Static methods can be called without creating an object from the class, like in your example, class::staticFunction(). This only works when in the class, the code is something like:

    class tNG_log {
        public static function log(...) {
            // ...
        }
    }
    

    Assuming the tNG_log-code is correct and should not be called staticly, the solution is to create an object from the class:

    $tnglog = new tNG_log();
    $tnglog->log(...);
    

    If you want more information, please start with reading http://php.net/manual/en/language.oop5.static.php

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序