回答
做的最好的方式,這將是:
$x = $x === 2 ? 0 : $x+1;
如果你堅持使用三元只是增加了var:
$x += $x === 2 ? $x*(-1) : 1;//or hard-code -2 instead of $x*(-1)
這要麼增加1到$x
或增加$x*-1
爲$ x($x + (-$x)
爲0)。總的來說,我想補充一點,應儘可能避免使用三元(尤其是PHP)。在這種情況下,寫:
if (++$x === 3)
{
$x = 0;
}
是否完全一樣的東西,而不是是太多的代碼,雖然它看起來要好很多。即便如此,在if語句的增量仍是凌亂的,最好事先增量,或者:
$x = $x === 2 ? -1 : $x;
$x++;
如果你已經有了一個ternaries一個奇怪的偏好...如果它有是一個單眼線:
$x = ($x ===2 ? -1 : $x) +1;
作品,太...但有一個爲這類事情一code-golfing site ...
非常好,感謝您讓我瞭解代碼高爾夫網站! – user933791
爲什麼不使用模塊運算符是什麼?
$x = ++$x % 2;
你想通過OP的代碼得到'$ x = ++ $ x%3',x可以是0,1或2 –
實際上,如果'x'設法在其他地方設置爲3,那麼這個模數運算符會給出不同的結果。但這是由OP的實際需求決定的(可能是邏輯錯誤!) –
- 1. 如何使用三元運算符來增加值
- 2. 使用在三元運算符PHP
- 3. 由一個和三元運算符遞增整數
- 4. 三元運算符
- 5. 模擬三元運算符的傳遞?
- 6. 運作遞增運算符
- 7. 三元運算符用法?
- 8. &&使用三元運算符
- 9. 使用三元運算符
- 10. 三元運算符用法
- 11. javascript三元運算符增加或減少值
- 12. PHP三元運算符不工作
- 13. 與三元運算符的PHP錯誤?
- 14. php三元運算符解釋
- 15. PHP三元運算符誤解?
- 16. PHP三元運算符澄清
- 17. 三元運算符在php中?
- 18. PHP中的三元運算符
- 19. 三元運算符在godaddy的PHP(parsererror)
- 20. 如何使用三元運算符在PHP在queal值
- 21. 使用PHP三元運算符返回一個特定值
- 22. python三元運算符與賦值
- 23. C++遞增運算符
- 24. 執行三元運算符
- 25. 關於三元運算符..!
- 26. C三元運算符
- 27. 替代三元運算符
- 28. 三元運算符在foreach
- 29. Ruby三元運算符
- 30. java三元運算符
爲什麼$ x ++不起作用?我無法找到解釋...怎麼可能預先增量工作和後增量沒有? – greg
@greg:'++ $ x'遞增該值,然後將其賦值給'$ x','$ x ++'首先賦值'$ x',然後*然後*遞增該值。 –
感謝您的回答,但我仍然沒有得到它......在這兩種情況下,它執行兩個操作。因此,讓我們把$ x = 1的情況。它發現$ x == 2是錯誤的,因此: 執行$ x ++將分配$ x = 1然後遞增該值,所以$ x = 2 ...在最後我仍然應該有$ x = 2。 正在執行++ $ x會將該值增加到2,然後將其分配給$ x。所以再次,$ x = 2. 在下面的情況下,我會理解++ $ y和$ y ++之間的區別: $ x =($ x == 2)? 0:$ y ++ => $ x = 1和$ y = 2 $ x =($ x == 2)? 0:++ $ y => $ x = 2和$ y = 2 – greg