2014-10-31 41 views
1

我試圖瞭解PHPstorm的意外行爲。我有兩個文件沒有任何包含或必需的定義。phpstorm接受未定義變量

// file1.php <?php $var = new class1();

// file2.php <?php class class1 { }

我期望的Class1在文件1未定義,因爲不包括文件2。但是phpstorm沒有顯示警告。 CTRL-B跳轉到file2中的聲明。 「忽略包含和需要語句」選項未選中。有人可以向我解釋這一點嗎?

+0

PhpStorm並不真正關心的包括/需要陳述,特別是對於類/接口/特性。類自動加載是目前的常規做法:在整個項目中(在入口/引導文件中)可能只有單個需求,並且所有類都將自動加載(例如,由Composer生成的自動加載器)。因此:這根本不是問題。 – LazyOne 2014-10-31 09:49:51

回答

2

phpstorm不知道關於您的上下文的所有信息。有可能這些文件是其他文件一個接一個所必需的,所以一切都會正常工作。還有一個很好的機會,你正在使用自動加載器/作曲家(誰不?),這將會照顧到這個問題。

所以,我想他們會不會認爲這是一個錯誤,因爲他們沒有將能夠正確地過濾誤報,如果他們能這樣的警告

0

這很可能是PHPStorm本身的錯誤,因爲PHP會引發異常。

Fatal error: Class 'class1' not found in /srv/www/htdocs/swaggityswoogityswoo/f1.php on line 5 Call Stack: 0.0003 629360 1. {main}() /srv/www/htdocs/swaggityswoogityswoo/f1.php:0 

由於我升級到最新版本,它似乎表現很奇怪。例如,當我嘗試合併一個文件,其中部署和本地文件都包含'文本對齊:左',他想合併到'文本對齊:中心'。

只要等到他們發佈另一個版本,也許他們將能夠修復這個錯誤。

+0

1)它不是一個錯誤,而是IDE如何與類一起工作的方式2)您提到的其他問題與實際問題無關。如果您發現問題 - 請通過http://youtrack.jetbrains.com/issues/WI向他們的問題跟蹤器報告 – LazyOne 2014-10-31 09:52:06