Ошибка с троичным оператором в сниффере кода PHP
У меня проблема с анализатором кода PHP и троичным оператором. Я добавил правило для проверки пробелов после и до операторов
<rule ref="Squiz.WhiteSpace.OperatorSpacing"/>
и теперь у меня есть ошибки вкратце, если заявления:
37 | ERROR | [x] Expected 1 space before "?"; newline found
38 | ERROR | [x] Expected 1 space before ":"; newline found
Мой код выглядит так:
return ($this->get('router')->getContext()->getHttpPort() == 80)
? '//'.$this->get('router')->getContext()->getHost()
: '//'.$this->get('router')->getContext()->getHost().':'.$this->get('router')->getContext()->getHttpPort();
Кто-нибудь знает, где могут быть проблемы? Я могу вставить весь файл набора правил, но после удаления правила OperatorSpacing все в порядке.
Привет
2 ответа
Решение
Хорошо, ребята, спасибо за помощь, но я нашел решение, @roberto06, спасибо за ссылку m8!
После добавления
<rule ref="Squiz.WhiteSpace.OperatorSpacing">
<properties>
<property name="ignoreNewlines" value="true"/>
</properties>
</rule>
работает отлично:)
Это только говорит, что все должно быть на одной линии.
Кстати, что-то лучше в вашем случае будет:
$value = '//'.$this->get('router')->getContext()->getHost();
return $value . ($this->get('router')->getContext()->getHttpPort() !== 80) ? (':'.$this->get('router')->getContext()->getHttpPort()) : '';