2014-10-31 2 views
1

Я пытаюсь понять непредвиденное поведение PHPstorm. У меня есть два файла без каких-либо включений или требуемых определений.phpstorm принимать неопределенные переменные

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

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

Я бы ожидать, что class1 не определено в file1, file2, потому что не входит в стоимость. Но phpstorm не показывает никаких предупреждений. CTRL-B переходит к объявлению в файле2. Опция «Игнорировать include и require statements» не проверяется. Может ли кто-нибудь объяснить это мне?

+0

PhpStorm не очень заботятся о включении/требуют заявления, особенно для классов/интерфейсов/признаков. Автозагрузкой классов в настоящее время является обычная практика: вы можете иметь только один запрос во всем проекте (в файле ввода/загрузки), и все классы будут загружаться автоматически (например, автозагрузчиком, сгенерированным Composer). Поэтому: это не ошибка. – LazyOne

ответ

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 

С тех пор, как я обновился до последних версий, это выглядит странно. Например, когда я пытаюсь объединить файл, в котором развернутый adn локальный файл содержит «text-align: left», он хочет объединить его в «text-align: center».

Подождите, пока они выпустят другую версию, возможно, они смогут исправить эту ошибку.

+0

1) Это не ошибка, а способ работы IDE с классами. 2) Другие проблемы, о которых вы упомянули, не имеют никакого отношения к реальному вопросу. Если вы обнаружили проблему - сообщите об этом в своем издателе по адресу http://youtrack.jetbrains.com/issues/WI. – LazyOne

Смежные вопросы