Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】PHP_OS_FAMILY定数の使い方

PHP_OS_FAMILY定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

PHP_OS_FAMILY定数は、PHPプログラムが実行されているオペレーティングシステム (OS) の種類、すなわちOSファミリを示す文字列値を保持する定数です。この定数は、コードが動作しているOS環境を識別するために使用され、例えばOS固有の処理を条件分岐させる際などに役立ちます。

具体的には、この定数は実行環境のOSに応じて「Windows」「BSD」「Darwin」(macOS)「Solaris」「Linux」「Unknown」といった主要なOSファミリのいずれかの文字列を返します。これにより、開発者はOSのより広範な分類に基づいてプログラムの動作を制御することが可能となり、異なるOS環境で動作するクロスプラットフォームなアプリケーションを開発する際の互換性確保に大きく貢献します。

この定数が提供するのはOSの「ファミリ」情報であり、OSの具体的なバージョン番号やアーキテクチャ(32ビット/64ビット)などの詳細な情報までは含まれません。例えば、Windows環境でパスの区切り文字を適切に処理したい場合や、Linux環境でのみ利用可能な特定のシェルコマンドを実行する前に環境を確認したい場合などに活用できます。この定数はPHP 7.1.0以降で利用可能です。

構文(syntax)

1<?php
2echo PHP_OS_FAMILY;
3?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

PHP_OS_FAMILYは、実行環境のOSファミリーを示す文字列を返します。例えば、'Windows'、'OSX'、'Linux'、'BSD'、'Solaris'、'Unknown'といった値が返されます。

サンプルコード

PHP_OS_FAMILY でOSファミリーを取得する

1<?php
2
3// PHP_OS_FAMILY定数は、PHPが動作しているオペレーティングシステムのファミリー(種類)を示す文字列を返します。
4// 例えば、'Windows', 'Linux', 'BSD', 'Darwin' (macOSの場合), 'Solaris', 'Unknown' などがあります。
5echo "PHPが動作しているOSのファミリー: " . PHP_OS_FAMILY . "\n";
6
7?>

PHP_OS_FAMILYは、PHPが現在動作しているオペレーティングシステムの「種類(ファミリー)」を示す文字列を保持する定数です。例えば、PHPがWindows環境で実行されていれば「Windows」、Linux環境であれば「Linux」、macOS環境であれば「Darwin」といった具体的な値が返されます。この定数には引数はなく、実行時にPHPの内部で自動的に決定され、常に文字列(string)を戻り値として提供します。

提供されたサンプルコードでは、echo文を使ってPHP_OS_FAMILY定数の値を出力しています。これにより、PHPプログラムがどのOSファミリー上で動いているのかを直接画面に表示して確認できます。例えば、Linuxサーバーでこのコードを実行すると、「PHPが動作しているOSのファミリー: Linux」というような出力結果が得られます。

この定数を利用することで、プログラムの実行環境に応じて処理を分岐させたい場合に非常に役立ちます。例えば、特定のOSでのみ実行可能なコマンドを使ったり、OSによって異なるファイルパスの区区切り文字(Windowsでは\、Linuxでは/など)を自動で切り替えたりする際に、条件分岐の判断材料として活用できます。このように、PHPが動作する環境に依存する処理を安全かつ柔軟に記述するために重要な定数です。

PHP_OS_FAMILYは、PHP 8以降で導入された定数です。この定数は、PHPが動作しているオペレーティングシステムの大きな分類(ファミリー)を示す文字列を返します。例えば 'Windows' や 'Linux' などです。

サンプルコードの注意点として、この定数の値は実行する環境によって異なるため、開発環境と本番環境で出力が変わる可能性がある点です。特定のOSファミリーに依存する処理を記述する際は、意図した動作となるか確認が必要です。また、PHP 8未満のバージョンではこの定数は存在せず、エラーとなるため、PHPのバージョンを確認して利用してください。OSの具体的なバージョンではなく、あくまでファミリーを示す点もご理解ください。

PHP_OS_FAMILYでOSファミリー名を取得する

1<?php
2
3/**
4 * 現在のPHPが実行されているOSのファミリー名を取得し、出力する関数です。
5 *
6 * PHP_OS_FAMILY は、PHPが実行されているオペレーティングシステムの大分類(例: 'Windows', 'Linux', 'BSD', 'Darwin')
7 * を示す組み込み定数です。これにより、OSの種類に応じて異なる処理を実装する際に役立ちます。
8 */
9function displayOsFamily(): void
10{
11    // PHP_OS_FAMILY 定数の値を取得し、出力します。
12    // この定数は文字列を返します。
13    echo "PHPが動作しているOSのファミリー: " . PHP_OS_FAMILY . PHP_EOL;
14
15    // 例として、特定のOSファミリーに対する条件分岐の開始点を示すことができます。
16    if (PHP_OS_FAMILY === 'Windows') {
17        echo "このシステムはWindowsファミリーです。\n";
18    } elseif (PHP_OS_FAMILY === 'Linux') {
19        echo "このシステムはLinuxファミリーです。\n";
20    } else {
21        echo "このシステムは" . PHP_OS_FAMILY . "ファミリーです。\n";
22    }
23}
24
25// 関数を呼び出して実行します。
26displayOsFamily();
27

PHPのPHP_OS_FAMILYは、現在PHPが動作しているオペレーティングシステムの「ファミリー名」を文字列として取得できる組み込み定数です。この定数には引数はなく、その値はOSの大分類を示す文字列(例: 'Windows', 'Linux', 'BSD', 'Darwin'など)です。

サンプルコードでは、まずdisplayOsFamily関数内でこのPHP_OS_FAMILY定数の値を取得し、echo文を使って画面に出力しています。これにより、PHPがどの種類のOS上で動いているのかを直接確認できます。

さらに、この定数の活用例として条件分岐が示されています。if (PHP_OS_FAMILY === 'Windows')のように、取得したOSファミリー名が特定の文字列と一致するかどうかを判定することで、OSの種類に応じた異なる処理をプログラムに記述することが可能です。例えば、WindowsとLinuxでファイルのパスの指定方法が異なる場合や、特定のOSでのみ利用可能な機能を呼び出す場合などに役立ちます。このように、PHP_OS_FAMILYは、実行環境に合わせた柔軟なシステム開発を行う上で非常に便利な定数です。

PHP_OS_FAMILYは、PHPが動作するオペレーティングシステムの大分類を示す組み込み定数です。変数ではないため、ドル記号($)を付けずに直接記述して利用します。その値は文字列であり、プログラムを実行する環境によって結果が異なりますので、開発環境と本番環境で同じコードでも動作が異なる可能性がある点に注意が必要です。特定のOSでのみ必要な処理を記述する際に、条件分岐の判断基準として活用すると、コードの可読性や保守性が向上します。比較を行う際には、値と型を同時にチェックする厳密な等価演算子(===)の使用を強く推奨します。

関連コンテンツ

関連プログラミング言語