Help us understand the problem. What is going on with this article?

PHP でバージョン番号の比較方法と確認方法(各種)

More than 1 year has passed since last update.

PHP アプリを作成した際の外部ライブラリなど、特定のバージョン以上で実行/稼働させたい場合のバージョン比較PHP のバージョン確認の方法です。

version_compare() 関数は PHP のバージョンに限らずxx.xx.xx 形式のバージョン情報であれば比較することが可能です。

比較

スクリプト内で version_compare関数で比較する

アプリケーションのバージョン・チェック
<?php
$ver_app_current = $someapp->version(); // 現在のバージョン (6.0.15)
$ver_app_require = '6.1.10';            // 必要最低バージョン
$ver_operator    = '<';                 // より上

if (version_compare($ver_app_current, $ver_app_require, $ver_operator)) {
    echo "APP バージョンが低すぎます。" . PHP_EOL;
    echo "現在のバージョン: " . phpversion() . PHP_EOL;
    echo "必要なバージョン: ${ver_php_require} ${ver_operator}" . PHP_EOL;

    die();
}

// #結果
// APP バージョンが低すぎます。
// 現在のバージョン: 6.0.15-RC0
// 必要なバージョン: 6.1.10 <

もちろん PHP のバージョン・チェックにも使えます。

PHPバージョン・チェック
<?php // version_compare() PHP >= 4.1.0
$ver_php_current = phpversion(); // 現在のバージョン (7.0.22)
$ver_php_require = '7.1.10';     // 必要最低バージョン
$ver_operator    = '<';          // より上

if (version_compare($ver_php_current, $ver_php_require, $ver_operator)) {
    echo "PHP バージョンが低すぎます。" . PHP_EOL;
    echo "現在のバージョン: " . phpversion() . PHP_EOL;
    echo "必要なバージョン: ${ver_php_require} ${ver_operator}" . PHP_EOL;

    die();
}

// #結果
// PHP バージョンが低すぎます。
// 現在のバージョン: 7.0.22-0ubuntu0.16.04.1
// 必要なバージョン: 7.1.10 <

比較オペレーター(比較演算子)の種類

version_compare($a, $b, $operator)の場合の比較オペレーター。小文字であること。

オペレーター 概要
<, lt $a$bより下
<=, le $a$b以下
>, gt $a$bより上
>=, ge $a$b以上
==, =, eq $a$bと同じ
!=, <>, ne $a$bと異なる

確認

スクリプト内で phpversion 関数から確認する

<?php // >= PHP 4.x.x

echo phpversion(); // 7.0.22-0ubuntu0.16.04.1

スクリプト内で PHP_VERSION 定数から確認する

<?php // >= PHP 5.2.7

echo PHP_VERSION . PHP_EOL;         // 7.0.22-0ubuntu0.16.04.1
echo PHP_MAJOR_VERSION . PHP_EOL;   // 7
echo PHP_MINOR_VERSION . PHP_EOL;   // 0
echo PHP_RELEASE_VERSION . PHP_EOL; // 22
echo PHP_EXTRA_VERSION . PHP_EOL;   // -0ubuntu0.16.04.1
echo PHP_VERSION_ID . PHP_EOL;      // 70022

シェル/ターミナル/コマンドラインから確認する

シェル/ターミナル/コマンドラインでバージョンだけ確認する

$ php -v
PHP 7.1.8 (cli) (built: Aug  7 2017 15:02:45) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

シェル/ターミナル/コマンドラインで他の情報(phpinfoの内容)も確認する

$ php -r "phpinfo();"
phpinfo()
PHP Version => 7.1.8
//略

Webから確認する

下記ファイルをブラウザから開く。コマンドラインで $ php ./index.php でもよい。

index.php
<?php
phpinfo();
KEINOS
A Japanese made in Mexico with Mexican quality ;-) Who monkey around the jungle of codes.記事の日本語がおかしかったら遠慮なく編集リクください。また、記事に「LGTM」が付くたび、なるべく何かしら加筆・修正してブラッシュアップしています。基本的に変更通知はお送りしません。
https://blog.keinos.com/
qiitadon
Qiitadon(β)から生まれた Qiita ユーザー・コミュニティです。
https://qiitadon.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした