Biasanya, untuk meneruskan argumen ke skrip baris perintah, Anda akan menggunakan argvvariabel global atau getopt :
// bash command:
// php -e myscript.php hello
echo $argv[1]; // prints hello
// bash command:
// php -e myscript.php -f=world
$opts = getopt('f:');
echo $opts['f']; // prints world
$ _GET merujuk ke parameter metode HTTP GET, yang tidak tersedia di baris perintah, karena mereka membutuhkan server web untuk diisi.
Jika Anda benar-benar ingin mengisi $ _GET, Anda dapat melakukan ini:
// bash command:
// export QUERY_STRING="var=value&arg=value" ; php -e myscript.php
parse_str($_SERVER['QUERY_STRING'], $_GET);
print_r($_GET);
/* outputs:
Array(
[var] => value
[arg] => value
)
*/
Anda juga dapat menjalankan skrip yang diberikan, mengisi $_GETdari baris perintah, tanpa harus mengubah skrip tersebut:
export QUERY_STRING="var=value&arg=value" ; \
php -e -r 'parse_str($_SERVER["QUERY_STRING"], $_GET); include "index.php";'
Perhatikan bahwa Anda dapat melakukan hal yang sama dengan $_POSTdan $_COOKIEjuga.
php [script name] "a=1&b=2&c=3"tidak akan mengisi$_SERVER['QUERY_STRING'], tetapi Anda dapat dengan mudah mempengaruhi hal yang sama dengan merujuk$_SERVER['argv'][1].