Php 类中的$argv

Php 类中的$argv,php,class,argv,Php,Class,Argv,我正在使用exec()来执行一个文件,但该文件在类中,我阅读了更多关于argv的内容,但它令人困惑。我需要让它在课堂上发挥作用 它说: 请注意,$argv和$argc在尝试在类方法内访问时需要声明为全局 在php.net上,这意味着argc/argv不是超全局的-它们只在php脚本的顶级上下文中可见,所以 <?php $x = $argv[1]; // works class foo { function bar() { echo $argv[1]; // unde

我正在使用
exec()
来执行一个文件,但该文件在类中,我阅读了更多关于argv的内容,但它令人困惑。我需要让它在课堂上发挥作用

它说:

请注意,$argv和$argc在尝试在类方法内访问时需要声明为全局


在php.net上,这意味着argc/argv不是超全局的-它们只在php脚本的顶级上下文中可见,所以

<?php

$x = $argv[1]; // works

class foo {
   function bar() {
       echo $argv[1]; // undefined
   }
   function baz() {
       global $argv;
       echo $argv[1]; // works
   }
}

我将argv作为参数添加到类构造函数中

class MyClass
{
    protected $args;

    public function __construct($args) 
    {
        $this->args = $args;
    }

    public function foo()
    {
        $this->args[1]; //access args using $this->args
    }
}

$myClass = new MyClass($args);

目标是什么?参数用于控制台执行。这也可以通过使用
$GLOBALS['argv']…
来完成。在这种情况下,将变量复制到当前范围或试图使其超全局是不可取的。