gpt4 book ai didi

PhpStorm - 如何检测 PHP 错误 "Non-static method should not be called statically"?

转载 作者:可可西里 更新时间:2023-11-01 00:30:36 25 4
gpt4 key购买 nike

在PHP中,静态方法既可以在静态方法中使用,也可以在非静态方法中使用,非静态方法只能在非静态方法中使用。这就是静态调用动态方法会生成 E_STRICT 错误的原因。

例如:

<?php

class Example
{
public function foo() {
return "Foo";
}

public static function bar() {
return "Bar";
}
}

$ex = new Example();

// Non-static call
echo $ex->bar();

// Static call on a non-static method
// PHP Error "Strict standards: Non-static method should not be called statically"
// ERROR NOT DETECTED BY PHPSTORM!
echo Example::foo();

最后一行将生成此 PHP 错误(这是逻辑): enter image description here

我目前正在开发一个大型 PHP 应用程序,该应用程序在某些 PHP 文件中静态调用非静态方法。这不是一个非常旧版本的 PHP 的问题,但我们已决定迁移到最新的 PHP 版本。

手动检查所有项目文件以确定这种错误的语法太长(超过 1000 个文件)!

PhpStorm 的内置代码检查功能不会在分析的源代码中检测到此类错误。为什么?我应该配置一些东西吗?怎么办?

下面是我在 PhpStorm 中的 PHP 代码检查配置:

enter image description here

谢谢!

最佳答案

检查在这里工作正常(proof)。

  1. 请尝试代码 |检查此文件上的代码...——它将强制从头开始重新分析此文件。好点了吗?

  2. 如果没有——请执行 File |使缓存无效... 并重新启动 IDE


附言
如果您有兴趣仅对整个项目运行此检查 - 使用Code |按名称运行检查... - 为每个文件执行完整的Inspect Code要快得多。

关于PhpStorm - 如何检测 PHP 错误 "Non-static method should not be called statically"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33954865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com