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数据库空间满了进行空间扩展的方法

    为了进行空间扩展,我们需要使用Oracle数据库管理工具(如SQL Plus)。以下是Oracle数据库空间扩展的步骤: 1. 查看当前空间使用情况 首先,我们需要查看当前数据库的空间使用情况。可以使用以下SQL语句: SELECT tablespace_name, sum(bytes)/1024/1024 AS mb_total, sum(maxbytes…

    database 2023年5月21日
    00
  • 详解Linux误删用户家目录的恢复方法

    详解Linux误删用户家目录的恢复方法 背景介绍 在使用Linux系统时,如果误删了用户的家目录,可能会导致用户重要的数据丢失,造成不可逆的损失。因此,了解恢复误删家目录的方法非常重要。本篇攻略将详细介绍如何在Linux系统中恢复误删的家目录。 重要提示 在进行恢复操作时,一定要避免将其他重要的数据误删,可以先进行备份操作,再进行恢复。 恢复方法 方法一:使…

    database 2023年5月22日
    00
  • 常用SQL功能语句

    下面是关于常用SQL功能语句的完整攻略。 什么是SQL功能语句? SQL(Structured Query Language)结构化查询语言,是一种专门用于管理关系型数据库的语言,其主要作用是进行数据的查询、插入、修改和删除等操作。SQL包含了很多的语句和函数,可以满足不同的需求。 常用SQL功能语句 SELECT语句 SELECT语句是SQL中最基本的语句…

    database 2023年5月21日
    00
  • redis 参数详解

    #是否作为守护进程运行 yes 或者 no daemonize yes #监听IP,redis一般监听127.0.0.1 网段访问,集群模式需要指定IP地址。 bind 192.168.1.115 # 当 Redis 以守护进程的方式运行的时候,Redis 默认会把 pid 文件放在/var/run/redis.pid # 可配置到其他地址,当运行多个 re…

    Redis 2023年4月13日
    00
  • linux下动态网站维护基本命令小结

    针对“linux下动态网站维护基本命令小结”的完整攻略,可以按照以下步骤操作: 1. 登录服务器 首先要登录到服务器上,可以通过ssh命令来进行登录。示例如下: ssh username@your-server-ip 其中username是你服务器的登录账号,your-server-ip是你服务器的IP地址。根据提示输入密码即可登录到服务器。 2. 进入网站…

    database 2023年5月22日
    00
  • SQL中Exists的用法

    当我们使用SQL查询语句时,经常会遇到需要判断某些条件是否存在的情况。在这种情况下,可以使用SQL中的Exists语句来进行判断。下面将详细讲解SQL中Exists的用法。 Exists语句是什么 Exists语句用于判断一个子查询是否返回结果。如果返回结果,则Exists语句返回TRUE,否则返回FALSE。Exists语句的基本用法如下: SELECT …

    database 2023年5月21日
    00
  • Linux下Navicat15激活的详细步骤

    下面是“Linux下Navicat15激活的详细步骤”的攻略: 步骤一:下载Navicat15并安装 首先,我们需要下载Navicat15的安装包并将其安装到Linux系统中。你可以从Navicat官方网站上下载适用于Linux系统的Navicat15安装包。 步骤二:获取Navicat15的注册码 接下来,我们需要访问Navicat官方网站并注册账号,登录…

    database 2023年5月22日
    00
  • 安装SQL server 提示重新启动计算机失败怎么解决?

    安装SQL Server时出现重新启动计算机失败的问题,这通常是由于以下原因之一所致: 已经打开了另一个程序或服务,正在使用文件。 某些Windows更新在安装过程中需要重新启动系统,但它们可能会在后台安装,而没有向用户显示通知。 系统出现故障,因此需要重新启动。 以下是解决这个问题的一些方法: 方法一:关闭所有与SQL Server相关的进程 在安装SQL…

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