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

PHPプログラミングの教科書 [php1st.com]

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の基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル

-PHPの基礎

Copyright© PHPプログラミングの教科書 [php1st.com] , 2018 All Rights Reserved Powered by AFFINGER5.