気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. PHPの基礎
  2. 9 view

PHP 7の宇宙船演算子の使い方

PHP 7で追加された宇宙船演算子は2つの式の大小関係をチェックするときに使います。

たとえば、$aと$bについて大小関係を比較して次のような値を返します。

  • $aと$bが一致する場合:0を返す
  • $aが$bより大きい場合:1を返す
  • $aが$bより小さい場合:-1を返す

使用例は次のようになります。

<?php
$a = 10;
$b = 100;

if (($a <=> $b) == 0) {
  echo '$aと$bは一致する';
} elseif (($a <=> $b) == 1) {
  echo '$aは$bより大きい';
} elseif (($a <=> $b) == -1) {
  echo '$aは$bより小さい';
}
?>

実行結果は次のようになります。

実行結果
$aは$bより小さい

usort関数と宇宙船演算子の組み合わせ

PHPマニュアルのusort関数のページに次のようなコードが載っています。ユーザー定義関数で配列をソートするコードです。

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

【引用】PHP: usort – Manual

実行結果
0: 1
1: 2
2: 3
3: 5
4: 6

宇宙船演算子を使えば、上記のような$aと$bの比較部分を次のように1行のコードで書き換えることができます。

<?php
function cmp($a, $b)
{
    return $a <=> $b;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

実行結果は同じです。

実行結果
0: 1
1: 2
2: 3
3: 5
4: 6

PHPの基礎の最近記事

  1. PHP 7の宇宙船演算子の使い方

  2. 条件分岐

  3. 処理の繰り返し

  4. 変数

関連記事

PAGE TOP