PhpStorm:代码分析-来自类名的静态调用
我在PhpStorm中得到了一个关于静态调用的常见用法的警告。 我有: 那么,我有:PhpStorm:代码分析-来自类名的静态调用,php,intellij-idea,phpstorm,Php,Intellij Idea,Phpstorm,我在PhpStorm中得到了一个关于静态调用的常见用法的警告。 我有: 那么,我有: $className = 'Test'; $className::thisIsATest(); 这不是一个错误,顺便说一句,我的PhpStorm中有: 有办法解决这个问题吗?至少,是否可以隐藏此警告?对于此问题,有一些解决方案: 更改为PHP版本>=5.3.0 使用调用用户函数(数组('Test','thisistest') 在项目设置下更改phpstrom中的代码检查行为(同时确保phpstrom为当前项
$className = 'Test';
$className::thisIsATest();
这不是一个错误,顺便说一句,我的PhpStorm中有:
有办法解决这个问题吗?至少,是否可以隐藏此警告?对于此问题,有一些解决方案:
调用用户函数(数组('Test','thisistest')旧PHP版本中的代码>
对于此问题,有一些解决方案:
更改为PHP版本>=5.3.0
使用调用用户函数(数组('Test','thisistest')旧PHP版本中的代码>
在项目设置下更改phpstrom中的代码检查行为(同时确保phpstrom为当前项目设置了正确的PhpVersion)
[解决方案]以正确的方式在phpstrom中声明带有注释的变量
比如:
使用PHP5.3.0或更高版本怎么样。在此版本之前,不允许使用语法。此处的测试版本:也可以这样做:call_user_func(数组('Test','thisistest')代码>不幸的是,PhpStorm还不支持这样的类引用。两个选项1)禁用“未知方法”检查。。但这也会影响到所有其他地方;2) 通过将/**@noinspection PhpUndefinedMethodInspection*/
放在$className::ThisisTest()前面的一行上,抑制此行的消息代码>3)通过为$className
变量提供更好的类型提示来帮助IDE——IDE理解的变量:/**@var Test$className*/
在$className='Test'之前代码>行禁用此检查实际上不是一个选项。我希望有办法告诉Phpstorm检查员如何处理这个问题。使用/**@var…
是一种选择,但这让我很困扰,因为它不是真正的类型。之后,他们在php5.3中引入了这种语法,以避免使用调用用户函数
函数(据我所知)。我现在要降低这个警告的严重性。谢谢你!使用PHP5.3.0或更高版本怎么样。在此版本之前,不允许使用语法。此处的测试版本:也可以这样做:call_user_func(数组('Test','thisistest')代码>不幸的是,PhpStorm还不支持这样的类引用。两个选项1)禁用“未知方法”检查。。但这也会影响到所有其他地方;2) 通过将/**@noinspection PhpUndefinedMethodInspection*/
放在$className::ThisisTest()前面的一行上,抑制此行的消息代码>3)通过为$className
变量提供更好的类型提示来帮助IDE——IDE理解的变量:/**@var Test$className*/
在$className='Test'之前代码>行禁用此检查实际上不是一个选项。我希望有办法告诉Phpstorm检查员如何处理这个问题。使用/**@var…
是一种选择,但这让我很困扰,因为它不是真正的类型。之后,他们在php5.3中引入了这种语法,以避免使用调用用户函数
函数(据我所知)。我现在要降低这个警告的严重性。谢谢你!事实上,我的代码是有效的(我使用的是PHP5.6)。只是Phpstorm的密码提示给我一个警告。我暂时降低了严重性。谢谢你@dam660与Phpstorm一起工作有时感觉就像身边有一百万个仆从:-)我注意到有点晚了,你的Q是关于phpstrom的,而不是代码本身。:)@dam660再次检查我的答案!哦这管用!此语法不是的一部分。上面写着:@var[“Type”][$element\u name][
。您的建议是将$element\u名称与类型切换。这到底意味着什么?谢谢大家!@dam660 I在某些情况下,第二个参数[$variablename]是可选的,因此它也可能自己检测前两个参数,因此顺序并不真正相关。您的链接也显示了类中的用法,但在我的例子中,它是全局使用的。最后,phpstorm做了他的解释。但是,只要它起作用……:)事实上,我的代码是有效的(我使用的是PHP5.6)。只是Phpstorm的密码提示给我一个警告。我暂时降低了严重性。谢谢你@dam660与Phpstorm一起工作有时感觉就像身边有一百万个仆从:-)我注意到有点晚了,你的Q是关于phpstrom的,而不是代码本身。:)@dam660再次检查我的答案!哦这管用!此语法不是的一部分。上面写着:@var[“Type”][$element\u name][
。您的建议是将$element\u名称与类型切换。这到底意味着什么?谢谢大家!@dam660 I在某些情况下,第二个参数[$variablename]是可选的,因此它也可能自己检测前两个参数,因此顺序并不真正相关。您的链接也显示了类中的用法,但在我的例子中,它是全局使用的。最后,phpstorm做了他的解释。但是,只要它起作用……:)
$className = 'Test';
$className::thisIsATest();
<?php
/**
* @var $className Test
*/
$className::thisIsATest();