在命令行中定义变量

时间:2013-07-21 08:56:09

标签: php command-line-interface

好的,问题很简单,但我无法找到真正有效的解决方案。

我想在调用特定脚本时能够define

我尝试过php -d DEBUG_ON myscript.php,但它不起作用(在脚本中测试if (defined("DEBUG_ON")) { }时,它会返回false

还尝试了php -r ('define("DEBUG_ON",1);') myscript.php的内容;哪个也不起作用。

那么,有什么想法吗? (或者有关如何达到同样效果的任何建议?)

1 个答案:

答案 0 :(得分:5)

使用$argv从命令行传递参数。然后在脚本的开头相应地定义它们。

if(php_sapi_name() === 'cli') {
    define('DEBUG_ON', $argv[1]);
}

如果您将此代码放在脚本的开头,那么它应该将DEBUG_ON定义为您从命令行传递的任何内容:php myscript.php arg1

您也可以define($argv[1], $argv[2]);然后使用php myscript.php DEBUG_ON 1将DEBUG_ON定义为1.