当前位置: 首页 > 知识库问答 >
问题:

严格的标准:“”的声明应该与“”兼容

董子平
2023-03-14

我刚刚在PHP 5.4上安装了woocommerce 2.0(在Wordpress上),我得到了这个:

严格标准:WC_Gateway_BACS::process_payment()的声明应与D:\my\path\to\htdocs\wordpress\plugins\woocommerce\classs\Gateway\BACS\class WC-Gateway-BACS中的WC_payment_Gateway::process-payment(()兼容。php在线。。。

我检查了文件,发现WC_Payment_Gateway没有方法process_payment()。我需要知道如何解决这个问题(不是通过设置error_reporting())。

PHP 中的严格标准到底是什么?
在什么情况下我们得到这个错误?

共有3个答案

井誉
2023-03-14

如果您想保持OOP形式而不关闭任何错误,您还可以:

class A
{
    public function foo() {
        ;
    }
}
class B extends A
{
    /*instead of : 
    public function foo($a, $b, $c) {*/
    public function foo() {
        list($a, $b, $c) = func_get_args();
        // ...

    }
}
申屠新觉
2023-03-14

引用PHP手册

在PHP 5中,一个新的错误级别E_STRICT可用。在PHP 5.4.0之前E_STRICT没有

您收到此错误是因为WC_Gateway_BACS::process_payment()声明不同于WC_Payment_Gateway::process_payment()(可能不是相同数量的参数等)。如果WC_Payment_Gateway没有process_payment方法,请检查它的父类:)

此外,如果要禁用 STRICT 错误,请将 ^ E_STRICT添加到错误报告配置中,例如:

error_reporting(E_ALL ^ E_STRICT);
颜云瀚
2023-03-14

WC_Payment_Gatewayabstract-wc-payment-gateway.php中定义并声明一个方法

function process_payment() {}

而< code>WC_Gateway_BACS将其定义为

function process_payment( $order_id ) { ...

(可能你把WC_Payment_Gateway和WC_Payment_Gateway搞混了)。

所以,不同的签名(0 个参数与 1 个参数)-

function process_payment() {}

function process_payment($order_id) {}

(*)记住,我从最后五分钟才知道伍兹商业,所以不要相信我的话。

 类似资料:
  • 严正声明 蓝天采集器属于公益软件,完全开源免费使用,不限制功能、不设后门、不种木马、不窃取用户数据、不搞版权碰瓷 初衷为推动数据共享、大数据研究及以数据为驱动的人工智能发展 谢绝使用本软件从事任何违法犯罪活动,请自觉遵守中华人民共和国网络安全法,在法律允许及协议允许的范围内合理使用该软件!

  • 问题内容: PHP中此错误的可能原因是什么?在哪里可以找到有关 兼容的信息 ? 问题答案: 与相比具有不同的参数或不同的访问级别(公共/私有/受保护)。

  • 问题内容: 我目前正在php 5.4上运行一个站点,在此之前我在5.3.8上运行了我的站点。不幸的是,php 5.4结合了和,这意味着我之前的设置现在无法正常工作。我以前的值是我应该一次启用一个值吗? 我有太多错误,文件包含太多代码供我修复。 问题答案: 正如评论者所说, 最好的 选择是修复错误,但时间或知识有限,这并非总是可能的。在您的php.ini中更改 至 如果您无权访问php.ini,则可

  • 本文向大家介绍C#标准活动声明,包括了C#标准活动声明的使用技巧和注意事项,需要的朋友参考一下 示例 事件声明: 事件处理程序声明: 订阅活动: 动态地: 通过设计师: 单击控件的属性窗口上的“事件”按钮(闪电) 双击事件名称: Visual Studio将生成事件代码: 调用方法:            

  • 问题内容: 我需要在顶部设置PHP脚本以禁用严格标准的错误报告。 有人可以帮忙吗? 问题答案: 您要禁用错误报告,还是只是阻止用户查看错误报告?即使在生产站点上,记录错误也通常是一个好主意。 它们将被记录到您的标准系统日志中,或者使用伪指令来指定您希望错误出现的确切位置。

  • 问题内容: 我尝试使用multi_query,但我不断弹出严格的Standards消息。 我收到的错误消息是: 严格标准 :mysqli_next_result():没有下一个结果集。请调用mysqli_more_results()/ mysqli :: more_results()检查是否调用此函数/方法 我尝试添加和删除,但没有运气。 问题答案: 虽然pipodesign纠正了$ querys