PhpStorm-suppress a';在类';一团

PhpStorm-suppress a';在类';一团,phpstorm,Phpstorm,我在PhpStorm中有很多文件,其中有一个警告,我就去了那个绿色的勾号!它们都来自于使用BLOB,这当然是有意义的,因为load()不是我的项目中设置的函数。它是来自OCI Lob的一个基本php函数 代码行是: $zip->addFromString($result['FILE_NAME'], $result['FILE_BLOB']->load()); 我尝试过以各种组合添加@var和@method注释(可能不正确),例如: /** @var $result['FILE_BL

我在PhpStorm中有很多文件,其中有一个警告,我就去了那个绿色的勾号!它们都来自于使用BLOB,这当然是有意义的,因为load()不是我的项目中设置的函数。它是来自OCI Lob的一个基本php函数

代码行是:

$zip->addFromString($result['FILE_NAME'], $result['FILE_BLOB']->load());
我尝试过以各种组合添加
@var
@method注释
(可能不正确),例如:

/** @var $result['FILE_BLOB'] load */

当然,我不想关闭这个检查项目,因为它在其他任何地方都非常有用。我只想把它压在这条线上,或者更好地把它指向正确的方向。有很多黄色的方块而不是滴答声是很烦人的。也许我只是对这件事大惊小怪,因为这个节目显然没有受到影响。有人知道任何解决方案或解决方法吗?

您可以在单独的变量中引用blob,然后在该变量上添加提示:

/** @var OCI_Lob $fileBlob */
$fileBlob = $result['FILE_BLOB'];
$zip->addFromString($result['FILE_NAME'], $fileBlob->load());
由于$result['FILE_BLOB']是一个对象,它将通过引用进行分配,因此这不会导致脚本内存使用量的显著增加

另一个选项是将整个结果数组作为OCI_Lob对象数组进行提示。不太好看,但它也可能解决您的代码检查问题:

/** @var OCI_Lob[] $result */
$zip->addFromString($result['FILE_NAME'], $result['FILE_BLOB']->load());

据我所知,在PHPDoc注释中不可能(目前)提示特定的数组键,因此这是目前我能想到的最好方法。

您可以在单独的变量中引用blob,然后在该变量上添加提示:

/** @var OCI_Lob $fileBlob */
$fileBlob = $result['FILE_BLOB'];
$zip->addFromString($result['FILE_NAME'], $fileBlob->load());
由于$result['FILE_BLOB']是一个对象,它将通过引用进行分配,因此这不会导致脚本内存使用量的显著增加

另一个选项是将整个结果数组作为OCI_Lob对象数组进行提示。不太好看,但它也可能解决您的代码检查问题:

/** @var OCI_Lob[] $result */
$zip->addFromString($result['FILE_NAME'], $result['FILE_BLOB']->load());

据我所知,在PHPDoc注释中不可能(目前)提示特定的数组键,因此这是目前我能想到的最好的方法。

嘿,谢谢你的回复。我尝试了这两种方法,但它只是说“未定义的类OCI_Lob”,然后显然仍然说在类中找不到方法。可能需要直接链接到OCI LOB的位置?此外,我还尝试了OCI Lob,因为Php手册上说的是OCI Lob,而不是下划线。不过,我认为作为变量引用将适用于我的另一个警告。所以,谢谢如果在命名空间中工作,可能需要使用\OCI\u Lob(前面带有反斜杠以引用根命名空间)。PHPStorm在默认情况下应该能够识别该类(至少对我来说是这样)。这对两种变体来说都是一种享受!我更喜欢第二行,因为它只有一行,只是一个注释,所以根本不涉及代码。谢谢嘿,谢谢你的回复。我尝试了这两种方法,但它只是说“未定义的类OCI_Lob”,然后显然仍然说在类中找不到方法。可能需要直接链接到OCI LOB的位置?此外,我还尝试了OCI Lob,因为Php手册上说的是OCI Lob,而不是下划线。不过,我认为作为变量引用将适用于我的另一个警告。所以,谢谢如果在命名空间中工作,可能需要使用\OCI\u Lob(前面带有反斜杠以引用根命名空间)。PHPStorm在默认情况下应该能够识别该类(至少对我来说是这样)。这对两种变体来说都是一种享受!我更喜欢第二行,因为它只有一行,只是一个注释,所以根本不涉及代码。谢谢