<?php
/**
* Parses command-line options with manual overrides.
*
* @param array $options An array of default option values.
* @param array $overrides An array of option overrides (key => value).
* @return array An associative array containing the parsed option values.
*/
function parseCommandLineOptions(array $options, array $overrides): array
{
$parsedOptions = $options; // Start with default options
// Apply overrides, overriding default values
foreach ($overrides as $key => $value) {
$parsedOptions[$key] = $value;
}
return $parsedOptions;
}
/**
* Example usage and demonstration.
*/
if (PHP_SAPI === 'cli') {
// Default options
$defaultOptions = [
'name' => 'default_name',
'port' => 8080,
'debug' => false,
'verbose' => true,
];
// Command-line arguments (simulated for demonstration)
$commandLineArgs = [
'name' => 'user_name',
'port' => 9000,
'debug' => true,
];
// Parse the options
$parsedOptions = parseCommandLineOptions($defaultOptions, $commandLineArgs);
// Output the parsed options
echo "<pre>";
print_r($parsedOptions);
echo "</pre>";
}
?>
Add your comment