【当ブログではアフィリエイト広告を利用しています】

[PHP] バージョン番号の文字列を比較する(version_compare)

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

WordPress, PHP, MySQL等にはバージョン番号があります。
現在のWordPressの最新バージョンなら「3.8.1」です。(投稿当時)

このバージョン番号を文字列として比較して、どちらが新しいかを判断したいと思います。
単純にPHPなら「$バージョンA > $バージョンB」と書きたくなっちゃいますが、ちゃんと動かないですよ。

[ダメな例] 具体的にはこんな時に正常に動きません。

if("2.10.3" > "2.9.0") {
   echo "期待している判定";
} else {
   echo "実際の判定結果";
}

実行結果> 実際の判定結果
言われてみればごもっともですが、比較する文字列の長さが変われば、期待する動きはしなくなります。

ロジックとしては、「.」で分割して~・・・と考えがちですが、ちゃんとPHPには標準で関数が用意されていますよ!
これぐらいなら自分でも書いても・・・とは思わないでください。

version_compare — ふたつの “PHP 標準” バージョン番号文字列を比較する

[正しい記述] 先ほどの例を version_compare() で書き換えてみます。

if(version_compare("2.10.3", "2.9.0", ">")) {
   echo "期待している判定";
} else {
   echo "実際の判定結果";
}

実行結果> 期待している判定
このとおり正しく比較できました。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。