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日

相关文章

  • 详解mysql表数据压缩

    MySQL表数据压缩是一种优化数据库性能和节省存储空间的方法,下面我来详细讲解一下该过程的完整攻略。 步骤一:选择压缩算法 首先,我们需要选择合适的压缩算法,MySQL提供了三种压缩算法,分别是zlib、lz4和lz4hc,其中lz4hc的压缩率最高,但压缩和解压缩速度较慢,zlib压缩率较低,但压缩和解压缩速度较快,lz4则是两种算法的平衡点,具体应该根据…

    database 2023年5月19日
    00
  • 一文搞懂阿里云服务器部署Redis并整合Spring Boot

    下面就为您详细讲解“一文搞懂阿里云服务器部署Redis并整合Spring Boot”的完整攻略。 简介 Redis是一个开源的基于键值对存储的数据结构服务器,可以用作数据库、缓存和消息中间件。Spring Boot是一个快速开发框架,它提供了多种实用工具和插件,可以帮助开发者快速构建基于Spring的应用程序。本文将介绍如何在阿里云服务器上部署Redis,然…

    database 2023年5月22日
    00
  • SQL注入报错注入函数图文详解

    SQL注入报错注入函数图文详解 什么是SQL注入 SQL注入是一种古老而又经典的安全漏洞,它可以让攻击者通过软件应用程序的输入接口,将恶意SQL语句插入到后台数据库中。这样一来,攻击者就可以得到有关数据库、应用程序逻辑以及系统访问控制的任何信息。 SQL注入报错注入 SQL注入报错注入一种SQL注入方式。它基于报错机制(错误信息)来进行攻击。在正常情况下,当…

    database 2023年5月18日
    00
  • CentOS 7.7安装Redis 5.0.5(单机)

    1.安装wget yum -y install wget 2.获取安装包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 或者去官网下载Redis上传到Linux系统 3.安装GCC编译器 yum install gcc 4.解压,切换到redis的目录下,编译 tar -zxvf redi…

    Redis 2023年4月16日
    00
  • python RabbitMQ队列/redis

    RabbitMQ队列   rabbitMQ是消息队列;想想之前的我们学过队列queue:threading queue(线程queue,多个线程之间进行数据交互)、进程queue(父进程与子进程进行交互或者同属于同一父进程下的多个子进程进行交互);如果两个独立的程序,那么之间是不能通过queue进行交互的,这时候我们就需要一个中间代理即rabbitMQ 消息…

    Redis 2023年4月11日
    00
  • SQLite优化方法

    SQLite优化方法完整攻略 为什么需要SQLite优化 SQLite是一种轻量级的数据库,常用于嵌入式设备、移动应用和小型网站等场合。但是,如果应用程序的数据量较大,查询、写入操作频繁,SQLite可能会变得慢甚至卡死。因此,为了提高SQLite的性能,需要进行优化。 SQLite优化方法 以下是SQLite优化的几种方法: 1. 设计合理的数据结构 合理…

    database 2023年5月19日
    00
  • 详解Linux系统日志管理

    下面我将为您详细讲解“详解Linux系统日志管理”的完整攻略。首先,我们需要了解什么是Linux系统日志。 什么是Linux系统日志 Linux系统中自带了系统日志收集和分析的功能。Linux系统日志主要分为4个类别: 系统日志:记录内核和系统软件运行的日志,例如系统引导信息、内核信息、服务的运行状态和各种错误信息等等。 安全日志:记录一个系统中安全相关的信…

    database 2023年5月22日
    00
  • oracle 发送邮件 实现方法

    Oracle 实现发送邮件需要使用第三方库 UTL_SMTP,该库包含在 Oracle 数据库中。以下是实现方法的完整攻略: 1. 准备工作 首先需要确认数据库服务器是否可以和外部邮件服务器通信,需要开启网络,确保能够连接 SMTP 服务器的 25 端口。还需要获取外部 SMTP 服务器的地址,账号和密码,这些信息会在后面的步骤里使用。 2. 创建存储过程 …

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