php - argv 和 argc 未定义或为空

标签 php command-line-arguments

当我在 __construct 中尝试这个时:

var_dump($argc);
var_dump($argv);
var_dump($_SERVER["argv"]);

返回错误

Undefined variable: argc and
Undefined variable: argv

和数组

(size=0) empty

当我在全局中声明 $argc 和 $argv 时,它返回所有 null。

我也像这样使用 nncron 解析参数:

* * * * * php \php\class.xmlcontroler.php timeout=60

0 * * * * php \php\class.xmlcontroler.php timeout=3600

什么是解决方案?

最佳答案

$argv$argc 仅在全局命名空间中可用。您必须将它们作为构造函数的参数来处理。

<?php
function foo()
{
    var_dump($argv);
}
echo "global\n";
var_dump($argv);

echo "function\n";
foo();

将提供:

global
array(2) {
  [0]=>
  string(5) "a.php"
  [1]=>
  string(3) "123"
}
function
NULL

当这样调用时 php a.php 123

更新:类示例

<?php
class Foo
{
    public function __construct($argv)
    {
        // use $argv
    }
}

$foo = new Foo($argv);

关于php - argv 和 argc 未定义或为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30864332/

相关文章:

javascript - 如何使用 TCPdf 和 PHP 创建只能由 adobe reader 打开的 pdf 文件

表格内的 PHP 下拉菜单

php - 在 PHP 中,我将如何拆分开始和结束定界符不同的字符串

Python 命令行参数可以为空或来自选择列表

php - 在 array 的开头插入一个键值对在 php

php - gcm推送通知: first success,然后未在IOS中注册

c# - 在 C# 中传递命令行参数

makefile - 从命令行传递附加变量到 make

unix - 记住 *nix 命令行参数

linux - 管道参数 : echo "value1 value2" | command $1 $2