Content · Web Development · PHP

Reading Command-Line Arguments in PHP

CLI arguments come from $argv and optional flags can be parsed with getopt(). Always handle missing values, quoting and error exit.

1 views Published Oct 17, 2026 Updated Oct 17, 2026 admin

CLI arguments come from $argv and optional flags can be parsed with getopt().

What It Does


CLI arguments come from $argv and optional flags can be parsed with getopt(). The following examples distinguish a normal use case, a boundary case and a practical application.

Requirements and Compatibility


PHP 8.x and a local test environment. Apply input validation, correct error handling and the requirements of any optional libraries.

The code focuses on the core concept. Production implementation may also need routes, validation, persistence, authorization or deployment tooling.

Example 1: Basic Behavior


Understand the primary operation and its inputs.

<?php
$argv = ['tool.php', '--task=export'];
$task = str_starts_with($argv[1], '--task=') ? substr($argv[1], 7) : '';
echo $argv[1]; // For actual parsing, call getopt() on the live CLI process

Example 2: Another Case


Check failure behavior or a different execution path.

<?php
$args = ['script.php', '--count', '5'];
$index = array_search('--count', $args, true);
$count = $index !== false ? filter_var($args[$index + 1] ?? null, FILTER_VALIDATE_INT) : false;
echo $count === false ? 'Invalid count' : $count;

Practical Example: Putting It to Use


The raw $argv array includes the script name as its first element.

<?php
$argv = ['app.php', 'import', 'list.csv'];
if (count($argv) !== 3) throw new InvalidArgumentException('Usage: app.php import file');
echo $argv[1] . ':' . $argv[2];

Important Behavior and Edge Cases


Always handle missing values, quoting and error exit codes.

Comparison with Related Functions or Approaches


OptionWhat it means in practice
Reading Command-Line Arguments in PHPCLI arguments come from $argv and optional flags can be parsed with getopt().
Related approachEnvironment variables are better for configuration that should not appear in shell histories.

Common Beginner Mistakes


MistakeCorrect approach
Ignoring the important boundary for Reading Command-Line Arguments in PHPAlways handle missing values, quoting and error exit codes.
Assuming a related mechanism has the same behaviorEnvironment variables are better for configuration that should not appear in shell histories.

Key Takeaways


  • CLI arguments come from $argv and optional flags can be parsed with getopt().
  • Always handle missing values, quoting and error exit codes.
  • Environment variables are better for configuration that should not appear in shell histories.

Before adapting these examples, verify the return values, test the failure paths and confirm that your application meets its security and environment requirements.

Share this resourceSend this page to someone who may find it useful.