PHP sözdizimi soru: global $ argv, $ argc;

4 Cevap

Yani bir PHPUnit test var, ve bir işlev içinde bu kodu bulundu.

global $argv, $argc;
echo $argc;
print_r($argv);

Ben bu değişkenler (komut satırından geçirilen argümanlar) temsil anlamak, ama ben daha önce bu sözdizimi görmedim: global $argv, $argc;

Özellikle burada ne oluyor?

4 Cevap

global anahtar kelime bir değişkenin küresel kapsamı sürümünü kullanın ve değişkenler dış fonksiyonları / dersleri de içlerinde ulaşılabilir ilan, böylece de geçerli kapsamı onu görünür hale getirmek için PHP söyler.

Aksi takdirde, bu değişkenleri atamak / okumaya çalışıyorum bunların yerine farklı bir yerel sürümü üzerinde çalışacaktır.

Karşılaştırın:

$foo = 1;

function test() {
    $foo = 2;
}

echo $foo; // prints 1

karşı ...

$foo = 1;

function test() {
    global $foo;
    $foo = 2;
}

echo $foo; // prints 2

argv ve arc komut satırından bir PHP komut dosyası çalışırken geçirilen parametrelerdir. Bildiğim kadarıyla ben farkında değilim gibi bu değişkenler HTTP kullanarak görünmesi asla.

Bkz: argc ve PHP kılavuzda argv girdileri.

Diğerleri zaten küresel ne anlama geldiğini açıkladı. Virgül sadece gruplar benzer açıklamalar.

Örneğin, bu hat bir sınıf için özel bir değişken bir demet ilan ediyorum:

private $name, $email, $datejoined;

yazma gibi aynı şey hangi:

private $name;
private $email;
private $datejoined;

Java gibi dillerde, onlar bir virgülle ayrılmış tek bir satırda aynı tipte birden fazla değişken bildirmek sağlar.

int sum, counter, days, number;

Kodunu test etmek için bir IDE olmadan, ben PHP onun aynı selamlarını söyleyebilirim, sadece global olarak bu iki değişken bildirir. Siz iki ayrı hat üzerinde ayrı ayrı yazabilirsiniz,

global $argv;
global $argc;

global anahtar kelime herhangi bir yerde bu dosyada erişilebilir belirtilen değişkenleri .. sıra, global değişkenler yapar.