7

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

它说:

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

在 php.net 上

4

2 回答 2

26

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

<?php

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

class foo {
   function bar() {
       echo $argv[1]; // undefined
   }
   function baz() {
       global $argv;
       echo $argv[1]; // works
   }
}
于 2012-08-12T18:35:06.797 回答
0

我将 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);
于 2018-08-24T04:32:29.043 回答