Cross-Platform Code 5: Checking the PHP Version with phpversion() and version_compare()

If you only want your script to work on certain versions of PHP, there are two functions just for you: phpversion() and version_compare(). The first takes no parameters, and returns a string containing the version number of the current version of PHP. The second takes two parameters, which should be two version strings of the type returned by phpversion(), and returns -1 if the first version is lower than the second, 0 if they are the same, and 1 if the first version is higher than the second.

    $CurrentVer = phpversion()
    print "Current PHP version: $CurrentVer\n";

    switch (version_compare($CurrentVer, '5.0.0') {
            case -1:
                    print "You're running an old PHP: $CurrentVer\n";
                    break;
            case 0:
                    print "You are running PHP 5\n";
                    break;
            case 1:
                    print "You are running a version of PHP after 5.0.0: $CurrentVer\n";
    }

That should output "Current PHP version: <your version here>", then either "You are running PHP 5" or "You are running a version of PHP after 5.0.0: <your version here>". Internally, this is actually a very advanced function, as it automatically distinguishes between development code, alpha, beta, and release candidate versions, and it allows you to check an arbitrary amount of version numbers. For example: 5.0.0b1 < 5.0.0RC1-dev < 5.0.0RC1 < 5.0.0RC2 < 5.0.0 < 5.0.0.0.0.0.1 < 5.0.1, etc.

What's more, there's nothing to say you have to use the PHP version for your checks. For example, if you are distributing ...

Get PHP in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.