[英]PHP codesniffer (phpcs) - how to allow override when using as part of a svn pre-commit hook?
[英]How to make PHP CodeSniffer standard PHPCS validate the ternary operator?
我已經使用PHP_CodeSniffer幾天了,但是我仍然無法驗證某些代碼。 當我使用三元運算符時,甚至是一個非常簡單的樣子:
$name = (strlen($name) > 0) ? $name : 'nameless';
代碼嗅探器說:
錯誤| 不允許內聯IF語句
但是,如果我使用三元代碼編寫了無效的代碼,如下所示:
$name = strlen($name) > 0? $name: 'nameless';
代碼嗅探器說“找到4 ERRO(S)...”:
錯誤| 比較值不得分配給變量
錯誤| 內聯速記IF語句需要用括號括起來比較
錯誤| 不允許內聯IF語句
錯誤| 預期在“?”之前有1個空格; 找到0個
錯誤| 預期在“:”之前有1個空格; 找到0個
為什么它驗證所有三元表達式,但是當我修復所有三元表達式時,PHPCS說它無效? 我寫錯了嗎?還是根本不允許三元?
嗅探失敗,而不是語法錯誤。 您已定義未遵循的規則。 您需要更正代碼或從規則集中刪除規則。
內聯IF語句將是您編寫的三元選項。 根據您的規則集,您需要編寫:
if (strlen($name) > 0)
{
$name = $name;
}
else
{
$name = 'nameless';
}
最好從規則中刪除嗅探。
在編輯的代碼中,嗅探者抱怨
> 0?
應該
> 0 ?
和
$name: 'nameless';
應該
$name : 'nameless';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.