Как смоделировать args внутри php файла? - PullRequest
0 голосов
/ 04 марта 2010
PHP file.php arg1 arg2

Теперь я хочу жестко кодировать arg1 и arg2 в file.php, как это сделать?

Ответы [ 3 ]

1 голос
/ 04 марта 2010

Я никогда не пробовал, но аргументы содержатся в определенном массиве $argv. Поэтому вы должны установить эти записи, если хотите жестко их кодировать:

$argc = 3; // number of arguments + 1
$argv[0] = 'file.php'; // contains script name
$argv[1] = 'arg1';
$argv[2] = 'arg2';

$argv является зарезервированной переменной .

Но учтите, что первые два параметра, которые вы указываете через командную строку, всегда будут перезаписаны arg1 и arg2.

Вместо этого, если вам нужны эти значения всегда в вашем скрипте, вы должны определить их как обычные переменные в верхней части вашего скрипта:

$var1 = 'arg1';
$var2 = 'arg2';

или даже как константы:

define('CONST1', 'arg1');
define('CONST2', 'arg2');

Если вы хотите предоставить arg1, arg2 в качестве параметра через командную строку, то вы можете просто получить к ним доступ через $argv[1] и $argv[2], не нужно связываться с $argv;

0 голосов
/ 04 марта 2010

Вы хотите проверить, сколько аргументов функции, а затем сделать что-то соответственно.

 function foo()
    {
       $numargs = func_num_args();
       echo "Number of arguments: $numargs<br />\n";
       if ($numargs >= 2) {
           echo "Second argument is: " . func_get_arg(1) . "<br />\n";
       }
       $arg_list = func_get_args();
       for ($i = 0; $i < $numargs; $i++) {
           echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
       }
    }

    foo(1, 2, 3);
0 голосов
/ 04 марта 2010

вы бы использовали argv () внутри вашего php-скрипта, чтобы получить аргументы

foreach ($argv as $args){
  print $args."\n";
}

элемент 0 содержит имя скрипта. остальные аргументы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...