ECSHOP在PHP5.5及高版本上报错的解决方法

下面我将为您详细讲解“ECSHOP在PHP5.5及高版本上报错的解决方法”的完整攻略。

问题描述

在PHP5.5及其高版本中,如果使用ECShop(版本2.x)进行开发或者二次开发,那么可能会出现以下报错信息:

Deprecated: Assigning the return value of new by reference is deprecated in file.php on line xx

或者:

Strict Standards: Non-static method tablename::funcname() should not be called statically in file.php on line xx

这是因为PHP5.5及其高版本对于几个报错级别做了更为严格的限制,而ECShop所使用的代码未能适应这种变动,以至于导致了上述错误的报出。

解决方法

针对这种情况,我们可以采用如下两个方法进行解决:

方法一:修改error_reporting级别

我们可以通过修改error_reporting级别的方式解决这个问题。我们只需要在index.php开头加上以下代码即可:

error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE);

这样就可以屏蔽掉"new"和“非静态方法调用”的报错信息。

方法二:修改代码文件

我们也可以直接修改代码文件中的报错代码来消除报错信息。具体地,我们需要将代码中的"=& new"和"$this->funcname()"修改为"= new"和"self::funcname()",例如:

//修改前
$obj =& new classname();
//修改后
$obj = new classname();
//修改前
$ret = $this->funcname();
//修改后
$ret = self::funcname();

例如,在includes/lib_transaction.php文件中,我们需要将以下代码:

$logistics_code = $obj_delivery->get_code();
$logistics_sn = &$obj_delivery->orderShipping($order);

修改为:

$logistics_code = $obj_delivery->get_code();
$logistics_sn = $obj_delivery->orderShipping($order);

这样,就可以消除相关的报错信息了。

示例说明

示例一:采用方法一解决问题

在index.php文件开头加入以下代码:

error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE);

这样就可以屏蔽掉“new”和“非静态方法调用”的报错信息。

示例二:采用方法二解决问题

我们在/includes/lib_transaction.php文件中发现以下代码:

$logistics_sn = &$obj_delivery->orderShipping($order);

将其修改为:

$logistics_sn = $obj_delivery->orderShipping($order);

就可以消除相关的报错信息了。

以上就是解决“ECSHOP在PHP5.5及高版本上报错的解决方法”的完整攻略。希望对您有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ECSHOP在PHP5.5及高版本上报错的解决方法 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • Oracle Table Demo语句应用介绍

    请看下面的详细讲解。 什么是Oracle Table Demo语句 Oracle Table Demo语句是一种在Oracle数据库中用于创建和操作表格的语句。它能够快速实现基本表格的创建、查询、更新和删除功能,并且可以通过一定的参数设置实现高级的功能。 Oracle Table Demo语法规则 Oracle Table Demo语句的语法规则如下: –…

    database 2023年5月21日
    00
  • Docker容器使用宿主机上的mongod/redis等服务详解

    下面我将详细讲解“Docker容器使用宿主机上的mongod/redis等服务”的完整攻略。 1. 使用桥接网络和host网络 Docker容器可以使用宿主机上的服务,有两种方式可以实现:使用桥接网络和使用host网络。 1.1 使用桥接网络 Docker默认会为每一个容器创建一个自己的网络。如果在容器内需要访问宿主机上的服务,可以通过将容器加入到宿主机上的…

    database 2023年5月22日
    00
  • 使用zabbix监控mongodb的方法

    以下是使用Zabbix监控MongoDB的方法的完整攻略: 1. 安装和配置Zabbix 首先,需要安装和配置Zabbix。这里不做详细叙述,可以参考官方文档进行安装和配置,建议使用最新版本。 2. 安装Zabbix Agent 为了能够在MongoDB服务器上监控MongoDB,需要安装Zabbix Agent。安装方式可以参考官方文档,建议使用最新版本。…

    database 2023年5月21日
    00
  • DBMS 中的事务管理

    事务管理是DBMS(数据库管理系统)中非常重要的一部分。它主要是用来保证数据库的一致性和可靠性的。下面将详细讲解DBMS中的事务管理的完整攻略,并给出实例说明。 1. 事务概念 事务是指在DBMS中,一组对数据进行访问和更新的操作。将这些操作作为一个不可分割的单元进行处理,要么全部执行,要么全部回滚(撤销)。事务是数据库恢复和并发控制的基础。 2. 事务的特…

    database 2023年3月27日
    00
  • 【原创】并发数优化–java+ssh+c3p0+tomcat+mysql+windows2008-64位

    新项目开发完毕,到了项目部署,没得选也是我来弄了! 最主要的问题:并发数!   这个所有客户数量较大的服务器都会遇到的问题。 虽然现在还没有解决,哈哈哈哈哈哈哈哈哈哈哈哈哈,但是记录下我现在所做的工作吧!   一、数据库 1,数据库:       数据库选择的是MySql 5.1,正常安装,未做优化,只是调整了最大连接数“max_connections=10…

    MySQL 2023年4月13日
    00
  • 总结12个MySQL慢查询的原因分析

    总结12个MySQL慢查询的原因分析 慢查询的定义 MySQL中可以通过slow_query_log来记录执行时间超过一定阈值(默认为10s)的SQL语句,这些被记录下来的SQL语句称作慢查询。 慢查询的原因 在MySQL中,慢查询的原因有很多,下面我们来总结12个常见的慢查询原因: 1. 数据库连接过多 如果连接数过多,就会导致需要排队等待执行,从而降低数…

    database 2023年5月19日
    00
  • 浅谈RHEL7和RHEL6的主要变化

    浅谈RHEL7和RHEL6的主要变化 操作系统内核升级 RHEL7相比RHEL6主要变化在于升级了内核版本,具体来讲,RHEL6的内核版本是2.6.x,而RHEL7的内核版本是3.10.x。这一升级在性能和安全性方面带来了显著的提升。 例如,在传统的系统调用中,读写文件的操作通常都是同步的,也就是说在读写文件时需要一直等待I/O操作完成才能执行下一条指令。而…

    database 2023年5月22日
    00
  • 记一次SQL优化的实战记录

    下面我为您详细讲解一下“记一次SQL优化的实战记录”的完整攻略。 一、前言 这是一篇SQL优化的实战记录,本文将从问题的提出、原因分析、技术选型、优化实现以及优化效果等方面,介绍如何对SQL进行优化,同时给出两个具体实例,帮助读者更好地理解SQL优化的过程和方法。 二、问题提出 我们公司的系统中有一张表A,这张表有6000万条记录,每天系统需要从中读取500…

    database 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部