CascadiaPHP 2024


(PHP 4, PHP 5, PHP 7, PHP 8)

phpversionGets the current PHP version


phpversion(?string $extension = null): string|false

Returns a string containing the version of the currently running PHP parser or extension.



An optional extension name.

Return Values

Returns the current PHP version as a string. If a string argument is provided for extension parameter, phpversion() returns the version of that extension, or false if there is no version information associated or the extension isn't enabled.


Version Description
8.0.0 extension is nullable now.


Example #1 phpversion() example

// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();

// prints e.g. '2.0' or nothing if the extension isn't enabled
echo phpversion('tidy');

Example #2 PHP_VERSION_ID example and usage

// PHP_VERSION_ID is available as of PHP 5.2.7, if our
// version is lower than that, then emulate it
if (!defined('PHP_VERSION_ID')) {
$version = explode('.', PHP_VERSION);

define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));

// PHP_VERSION_ID is defined as a number, where the higher the number
// is, the newer a PHP version is used. It's defined as used in the above
// expression:
// $version_id = $major_version * 10000 + $minor_version * 100 + $release_version;
// Now with PHP_VERSION_ID we can check for features this PHP version
// may have, this doesn't require to use version_compare() everytime
// you check if the current PHP version may not support a feature.
// For example, we may here define the PHP_VERSION_* constants thats
// not available in versions prior to 5.2.7

if (PHP_VERSION_ID < 50207) {
define('PHP_MAJOR_VERSION', $version[0]);
define('PHP_MINOR_VERSION', $version[1]);
define('PHP_RELEASE_VERSION', $version[2]);

// and so on, ...



This information is also available in the predefined constant PHP_VERSION. More versioning information is available using the PHP_VERSION_* constants.


Some extensions may define their own version number. However, most bundled extension will use the PHP version as their version number.

See Also

add a note

User Contributed Notes 3 notes

11 years ago
If you're trying to check whether the version of PHP you're running on is sufficient, don't screw around with `strcasecmp` etc. PHP already has a `version_compare` function, and it's specifically made to compare PHP-style version strings.

if (version_compare(phpversion(), '5.3.10', '<')) {
// php version isn't high enough
burninleo at gmx dot net
8 years ago
Note that the version string returned by phpversion() may include more information than expected: "5.5.9-1ubuntu4.17", for example.
pavankumar at tutorvista dot com
13 years ago
To know, what are the {php} extensions loaded & version of extensions :

foreach (get_loaded_extensions() as $i => $ext)
$ext .' => '. phpversion($ext). '<br/>';
To Top