在 visuel studio 代码中处理 php 回调的“0 引用”

问题描述 投票:0回答:2

在 Visual Studio Code 中编辑 WordPress 代码时,
如果我有一个函数定义,并且我将其用作对

add_action
add_filter
的调用的回调,那么因为它用作字符串,所以它不被算作对函数的引用,并且智能感知在我的上方显示
0 references
这个函数在某种程度上是正确的,但在实际意义上也是错误的和误导性的。

我可以做一些事情来告诉 Visual Studio Code 添加对该函数的引用吗?

我希望我可以做这样的事情:

function myCallback() {
//do some stuff
}

add_action('init',myCallback.name) 

add_action('init','myCallback' /* @references:myCallback */)     

或者类似的东西

php visual-studio-code intellisense wordpress-plugin-creation
2个回答
1
投票

如果您使用 PHP 8.1,则可以使用 第一类可调用语法

add_action('init', myCallback(...));

我尝试了DEVSENSE的PHP扩展,下面的可调用形式可以作为参考。

class Foo {
    public static function myCallback() {}
}

add_action('init', [Foo::class, 'myCallback']);

0
投票

您可以使用回调将函数分配给:

$callable = function() {
   echo 'Hello world!';
};

call_user_func($callable);

这适用于多个版本:https://3v4l.org/1tH3K
如果我正确阅读 3v4l.org,它适用于

5.3.0 - 5.3.29、5.4.0 - 5.4.45、5.5.0 - 5.5.38、5.6.0 - 5.6.40、7.0.0 - 7.0.33、7.1.0 - 7.1.33、7.2 .0 - 7.2.34、7.3.0 - 7.3.33、7.4.0 - 7.4.33、8.0.0 - 8.0.30、8.1.0 - 8.1.23、8.2.0 - 8.2.10

© www.soinside.com 2019 - 2024. All rights reserved.