gpt4 book ai didi

PhpDoc 在类中包含的文件中为自己添加符号

转载 作者:可可西里 更新时间:2023-10-31 23:29:55 24 4
gpt4 key购买 nike

我有一个类,它包含一个文件,方法如下:

class.php 文件中:

class A {

const CONST1 = 5;

/** @var int $a */
var $a = 5;

public function call()
{
include( 'b.php' );
}

public function do_some_magic()
{
// magic stuff...
}

public static function static_func()
{
// some code...
}

}

文件 b.php:

<?php
/** @var A $this */
/** @var A self */ // This doesn't work

$this->do_some_magic();

echo '['.$this->a.']';

self::static_func();

echo '['.self::CONST1.']';

如果我想转到 do_some_magic() 的定义或 a 的定义,我将 PhpStorm 用作 IDE 和 b.php 文件变量它将正确地转到 class.php 文件中相应的方法或变量定义,但是如果我想转到常量 CONST1 的定义或静态方法的定义 static_func() 它说“找不到要转到的定义”,所以我认为 /** @var A self */ 不是包含文件中的有效符号。

我的问题是:在 PhpDoc 中有什么方法可以告诉 IDE 包含文件中的 self 是什么类型?

最佳答案

我搜索了一个答案,但目前看来只有这样才能在包含的文件中自动完成,您将不得不使用类名进行静态调用。当然,如果您将文件包含在不同的类中并且您希望 self 表示包含该文件的特定类,这将失败。

所以 b.php 看起来像:

<?php
/** @var A $this */
/** @var A self */ // This doesn't work

$this->do_some_magic();

echo '['.$this->a.']';

A::static_func();

echo '['.A::CONST1.']';

如果您找到更好的答案,请告诉我。

问候,

安迪

关于PhpDoc 在类中包含的文件中为自己添加符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31116041/

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