Bir php dosyası içinde args taklit etmek nasıl?

3 Cevap php
PHP file.php arg1 arg2

Şimdi ben bunu nasıl, arg1 kodlamalısınız ve arg2 file.php içine istiyorsun?

3 Cevap

Ben denedim, ama argümanlar belli bir dizide bulunur asla $argv. Yani bunları kodlamalısınız istiyorsanız o kayıtlar ayarlamak zorunda:

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

$argv bir reserved variable olduğunu.

Ama komut satırı üzerinden belirlediğiniz ilk iki parametre her zaman arg1 ve arg2 tarafından yazılır unutmayın.

Eğer komut her zaman bu değerlere ihtiyaç Bunun yerine, size komut üst normal değişkenler olarak tanımlamak gerekir:

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

hatta sabitleri olarak:

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

Sadece arg1, arg2 komut satırı üzerinden parametre olarak sağlamak istiyorsanız, o zaman sadece $argv[1] ve $argv[2] üzerinden erişebilirsiniz $argv ile karıştırmaya gerek;

Eğer argümanları almak için php komut dosyası içinde argv() kullanmak istiyorsunuz

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

eleman 0 betik adını içerir. kalan argümanlar vardır.

Daha sonra buna göre bir şey yapmak, işlevine kaç argüman test etmek istiyorum.

 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);