为什么在强制转换时它认为类类型是常量


Why does it think a class type is a constant, when casting?

PHPStorm,是否将(MyObject)高亮显示为未定义的常量?之后有一个突出显示的部分要求使用预期的分号(MyObject);?

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

当I Cntrl-N(MyObject)时,它将转到MyObject的正确定义,因此检查工作正常。这个表达式调用了一个类工厂,所以我试图对它进行强制转换,以便在剩下的时间里,编辑器知道变量$MyObject的类型是什么。我配置错了什么?

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

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

你喜欢什么方法取决于你。

我认为这是可能的。这只是PHPStorm的一个错误。演员阵容是正确的,但您缺少一个)

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

这可能是错误的原因,如果这不仅仅是一个错误的类型发布问题到堆栈溢出。