簡體   English   中英

如何使PHP CodeSniffer標准PHPCS驗證三元運算符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM