PHP7 <=> Spaceship 運算子的語法

PHP 7.x 後有新增一個比較的語法,可以依照比對 >、=、< 分別回傳 1、0、-1

PHP7 <=> Spaceship 運算子的語法

PHP7 之後,有新增 Spaceship operator 的操作語法:

  • echo 2 <=> 1; // 1
  • echo 2 <=> 2; // 0
  • echo 2 <=> 3; // -1
  • 更大數值也是一樣
    • echo 2 <=> -1; // 1
    • echo 2 <=> 4; // -1
  • 用 if 來舉例
    • if ($a == $b) = 0
    • if ($a > $b) = 1
    • if ($a < $b) = -1

下述摘錄自此篇:PHP: Comparison Operators - Manual

  1. &lt;?php
  2. // Integers
  3. echo 1 &lt;=&gt; 1; // 0
  4. echo 1 &lt;=&gt; 2; // -1
  5. echo 2 &lt;=&gt; 1; // 1
  6. // Floats
  7. echo 1.5 &lt;=&gt; 1.5; // 0
  8. echo 1.5 &lt;=&gt; 2.5; // -1
  9. echo 2.5 &lt;=&gt; 1.5; // 1
  10. // Strings
  11. echo "a" &lt;=&gt; "a"; // 0
  12. echo "a" &lt;=&gt; "b"; // -1
  13. echo "b" &lt;=&gt; "a"; // 1
  14. echo "a" &lt;=&gt; "aa"; // -1
  15. echo "zz" &lt;=&gt; "aa"; // 1
  16. // Arrays
  17. echo [] &lt;=&gt; []; // 0
  18. echo [1, 2, 3] &lt;=&gt; [1, 2, 3]; // 0
  19. echo [1, 2, 3] &lt;=&gt; []; // 1
  20. echo [1, 2, 3] &lt;=&gt; [1, 2, 1]; // 1
  21. echo [1, 2, 3] &lt;=&gt; [1, 2, 4]; // -1
  22. // Objects
  23. $a = (object) ["a" =&gt; "b"];
  24. $b = (object) ["a" =&gt; "b"];
  25. echo $a &lt;=&gt; $b; // 0
  26. $a = (object) ["a" =&gt; "b"];
  27. $b = (object) ["a" =&gt; "c"];
  28. echo $a &lt;=&gt; $b; // -1
  29. $a = (object) ["a" =&gt; "c"];
  30. $b = (object) ["a" =&gt; "b"];
  31. echo $a &lt;=&gt; $b; // 1
  32. // not only values are compared; keys must match
  33. $a = (object) ["a" =&gt; "b"];
  34. $b = (object) ["b" =&gt; "b"];
  35. echo $a &lt;=&gt; $b; // 1
  36. ?&gt;

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料