为什么在转换时认为类类型是常量?

发布于 2024-11-15 15:22:32 字数 297 浏览 1 评论 0原文

PHPStorm,将 (MyObject) 突出显示为未定义的常量?并在后面有一个突出显示的位,要求输入预期的分号(MyObject);?

$MyObject = (MyObject)(Doctrine::getTable('MyTable')->findOneById($id));

当我 Cntrl-N (MyObject) 时,它会转到 MyObject 的正确定义,因此检查有效。该表达式调用类工厂,因此我尝试对其进行强制转换,以便编辑器知道变量 $MyObject 的类型是什么。我配置错了什么?

PHPStorm, highlights (MyObject) as an undefined constant? and has a highlighted bit afterward asking for an expected semicolon (MyObject);?

$MyObject = (MyObject)(Doctrine::getTable('MyTable')->findOneById($id));

When I Cntrl-N (MyObject) it goes to the correct definition for MyObject, so the inspection works. The expression calls a class factory, so I am trying to cast it so that the rest of the time, the editor knows what the variable $MyObject's type is. What have I configured wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

嗼ふ静 2024-11-22 15:22:32

如果您正在进行强制转换以获得代码完成,还有另一种方法可以通知 PHPStorm:

/** @var $MyObject MyObject */
$MyObject = Doctrine::getTable('MyTable')->findOneById($id);

您更喜欢哪种方法取决于您。

If you are doing the cast to get code completion, there is another way to inform PHPStorm:

/** @var $MyObject MyObject */
$MyObject = Doctrine::getTable('MyTable')->findOneById($id);

It's on you what method you prefer.

ゃ懵逼小萝莉 2024-11-22 15:22:32

我认为这是可能的。这只是 PHPStorm 的一个错误。转换是正确的,但您缺少 )

$MyObject = (MyObject)(<-- unclosed Doctrine::getTable('MyTable')->findOneById($id));

如果不仅仅是将问题发布到 Stackoverflow 时输入错误,这可能是错误的原因。

I think it's possible. This is just an error with PHPStorm. The cast is correct, but you're missing a )

$MyObject = (MyObject)(<-- unclosed Doctrine::getTable('MyTable')->findOneById($id));

Which could be the cause of the error if it's not just a mistype posting the question to Stackoverflow.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文