カテゴリ: PHP 更新日: 2026/03/25

PHPのコマンドライン引数を完全ガイド!初心者でもわかるCLI引数の取得と処理($argv・getopt)

PHP の CLI 引数の取得と処理($argv, getopt)
PHP の CLI 引数の取得と処理($argv, getopt)

先生と生徒の会話形式で理解しよう

生徒

「PHPって、画面に表示するだけじゃなくて、コマンドで動かすこともできるんですか?」

先生

「できます。PHPにはCLI(コマンドラインインターフェース)という使い方があります。」

生徒

「コマンドラインって、黒い画面のことですよね?文字を入力するのが怖いです…」

先生

「大丈夫です。文字だけで操作しますが、仕組みはとても単純です。今日は引数の使い方を見ていきましょう。」

1. PHPのCLIとは?コマンドラインで動くPHP

1. PHPのCLIとは?コマンドラインで動くPHP
1. PHPのCLIとは?コマンドラインで動くPHP

PHPというと、Webサイトを作る言語というイメージが強いですが、実はPHP CLIと呼ばれる仕組みを使うと、パソコンのコマンドラインから直接PHPを実行できます。コマンドラインとは、マウスを使わずに文字を入力して操作する画面のことです。Windowsでは「コマンドプロンプト」、Macでは「ターミナル」と呼ばれます。

CLIはCommand Line Interfaceの略で、文字で命令を出す操作方法を意味します。PHPのCLIを使うと、ファイルの処理や自動作業、簡単なツール作成などが可能になります。

2. コマンドライン引数とは?人に渡すメモのようなもの

2. コマンドライン引数とは?人に渡すメモのようなもの
2. コマンドライン引数とは?人に渡すメモのようなもの

コマンドライン引数とは、PHPファイルを実行するときに一緒に渡す情報のことです。たとえば「この名前で挨拶して」「この数字を使って計算して」というような指示を、実行時に渡せます。

これは、人に紙を渡すイメージに近いです。PHPファイルが人だとすると、引数は「一緒に渡すメモ」です。PHPはそのメモを読んで、処理の内容を変えます。

3. $argvとは?引数が全部入った配列

3. $argvとは?引数が全部入った配列
3. $argvとは?引数が全部入った配列

$argvは、PHPのCLIで自動的に使える変数です。配列という箱の集まりの形で、コマンドライン引数がすべて入っています。配列とは、番号付きの箱が並んでいるものだと考えてください。

$argv[0]にはPHPファイル名、$argv[1]以降に実際の引数が入ります。


<?php
print_r($argv);

このPHPファイルを次のように実行します。


php sample.php 太郎 20

実行結果は次のようになります。


Array
(
    [0] => sample.php
    [1] => 太郎
    [2] => 20
)

4. $argvを使った簡単な処理例

4. $argvを使った簡単な処理例
4. $argvを使った簡単な処理例

では、引数を使って実際に処理をしてみましょう。ここでは、名前を受け取って挨拶を表示します。


<?php
$name = $argv[1];
echo $name . "さん、こんにちは";

太郎さん、こんにちは

このように、引数を使うことで、同じPHPファイルでも実行するたびに違う結果を出せます。

5. getoptとは?オプション付き引数を扱う方法

5. getoptとは?オプション付き引数を扱う方法
5. getoptとは?オプション付き引数を扱う方法

getoptは、少し進んだ引数の取得方法です。オプションとは、「-n」や「--name」のように、意味を持った名前付きの引数です。リモコンのボタンのように、押すボタンで動作が変わるイメージです。

getoptを使うと、どの引数が何の意味かが分かりやすくなります。


<?php
$options = getopt("n:");
echo $options["n"];

php sample.php -n 太郎

太郎

6. 長いオプション名(--name)の使い方

6. 長いオプション名(--name)の使い方
6. 長いオプション名(--name)の使い方

短いオプションは覚えにくいこともあります。そんなときは、長い名前のオプションが便利です。


<?php
$options = getopt("", ["name:"]);
echo $options["name"];

php sample.php --name=太郎

太郎

見た目が分かりやすく、初心者にも安心です。

7. $argvとgetoptの違いと使い分け

7. $argvとgetoptの違いと使い分け
7. $argvとgetoptの違いと使い分け

$argvは、とてもシンプルで仕組みが分かりやすい反面、引数の意味を自分で管理する必要があります。一方、getoptは少し書き方が増えますが、引数の意味がはっきりします。

簡単な確認や練習には$argv、少し整理されたツールにはgetopt、というように使い分けるとよいでしょう。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

CLIでよくある失敗は、引数を渡し忘れることや、番号を間違えることです。また、文字と数字の違いが分からず戸惑うこともあります。PHPは優しい言語なので、エラー表示をよく読むことが大切です。

最初は「黒い画面が怖い」と感じますが、実際は決まった文字を入力するだけです。何度も試すことで自然と慣れていきます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
PHP
PHPのコマンドライン引数を完全ガイド!初心者でもわかるCLI引数の取得と処理($argv・getopt)
New2
Python
Pythonの関数を引数に渡す方法!高階関数の使い方を解説
New3
Python
Pythonの入力と出力を学ぼう!print()関数とinput()関数の使い方
New4
Python
Pythonの関数のドキュメント(docstring)の書き方!PEP 257のガイドライン
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのloggingモジュール入門!初心者でもできるエラーログの記録方法をやさしく解説
No.2
Java&Spring記事人気No2
Python
Pythonでリストを分割する方法(スライス / split() / itertools)
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方を解説!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
Python
PythonでISO 8601形式の日時に変換する方法を完全解説!初心者でもわかる時間フォーマットの基本
No.5
Java&Spring記事人気No5
Python
Pythonのインデントの重要性!なぜPythonではインデントが必須なのか?
No.6
Java&Spring記事人気No6
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.7
Java&Spring記事人気No7
Python
Pythonで辞書の値を集計する方法(Counter / groupbyの活用)初心者向け完全ガイド
No.8
Java&Spring記事人気No8
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド