PHP 代码嗅探器中的三元运算符错误
Error with ternary operator in PHP code sniffer
我对 PHP 代码嗅探器和三元运算符有疑问。
我添加了检查运算符前后空格的规则
<rule ref="Squiz.WhiteSpace.OperatorSpacing"/>
现在我有简短的 if 语句错误:
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 规则后一切正常。
你好
它只是说所有内容都应该在同一行上。
顺便说一句,对你来说更好的是:
$value = '//'.$this->get('router')->getContext()->getHost();
return $value . ($this->get('router')->getContext()->getHttpPort() !== 80) ? (':'.$this->get('router')->getContext()->getHttpPort()) : '';
好的,谢谢你的帮助,但我找到了解决方案,@roberto06,感谢 link m8!
添加后
<rule ref="Squiz.WhiteSpace.OperatorSpacing">
<properties>
<property name="ignoreNewlines" value="true"/>
</properties>
</rule>
它运行完美:)
我对 PHP 代码嗅探器和三元运算符有疑问。 我添加了检查运算符前后空格的规则
<rule ref="Squiz.WhiteSpace.OperatorSpacing"/>
现在我有简短的 if 语句错误:
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 规则后一切正常。
你好
它只是说所有内容都应该在同一行上。
顺便说一句,对你来说更好的是:
$value = '//'.$this->get('router')->getContext()->getHost();
return $value . ($this->get('router')->getContext()->getHttpPort() !== 80) ? (':'.$this->get('router')->getContext()->getHttpPort()) : '';
好的,谢谢你的帮助,但我找到了解决方案,@roberto06,感谢 link m8!
添加后
<rule ref="Squiz.WhiteSpace.OperatorSpacing">
<properties>
<property name="ignoreNewlines" value="true"/>
</properties>
</rule>
它运行完美:)