2017-05-31 41 views
1

PHPコードスニファと三項演算子に問題があります。 私は、オペレータPHPコードスニファの三項演算子でエラー

<rule ref="Squiz.WhiteSpace.OperatorSpacing"/> 

とif文今、私はショートのエラーを持った後と前にスペースをチェックするためのルールを追加しました:

return ($this->get('router')->getContext()->getHttpPort() == 80) 
    ? '//'.$this->get('router')->getContext()->getHost() 
    : '//'.$this->get('router')->getContext()->getHost().':'.$this->get('router')->getContext()->getHttpPort(); 

誰もが知っている:

37 | ERROR | [x] Expected 1 space before "?"; newline found 
38 | ERROR | [x] Expected 1 space before ":"; newline found 

は私のコードは次のように見えます問題がありますか?私はルールセットファイル全体を貼り付けることができますが、OperatorSpacingルールを削除した後はすべてOKです。

挨拶

+1

よく働いています

<rule ref="Squiz.WhiteSpace.OperatorSpacing"> <properties> <property name="ignoreNewlines" value="true"/> </properties> </rule> 

を追加し、エラーは、システムがあなたの事業者のそれぞれの前にスペースを期待していた、一目瞭然ようだが、改行を発見しました。それらを1つのスペースで置き換えてください。 – roberto06

+1

この目的の機能の詳細はこちらhttps://github.com/squizlabs/PHP_CodeSniffer/issues/348 – roberto06

+0

Squizにはあなたが従わなければならない標準があります – RiggsFolly

答えて

2

[OK]をみんな、助けに感謝しかし、私は解決策は、@ roberto06、リンクM8に感謝を発見!

した後、それは完璧:)

+0

あなたの回答には、受け入れ可能とマークできますか?だから私たちは皆、この質問が解決されたことを知っている、ありがとう –

+1

@TomášVotruba完了:) – jager91

1

それだけですべてが同じ行にする必要がありますと言います。

ところで、あなたのケースでより良い何かが次のようになります。

$value = '//'.$this->get('router')->getContext()->getHost(); 

return $value . ($this->get('router')->getContext()->getHttpPort() !== 80) ? (':'.$this->get('router')->getContext()->getHttpPort()) : '';