2013-07-21 46 views
0

好吧,虽然我找不到真正的工作解决方案,但问题很简单。在命令行中定义变量

我希望能够define东西,而调用特定的脚本。

我已经尝试过了类似php -d DEBUG_ON myscript.php但它不工作(在脚本中测试if (defined("DEBUG_ON")) { }时,它返回false

还试图沿着php -r ('define("DEBUG_ON",1);') myscript.php线的东西;这也不起作用。

那么,有什么想法? (或者我有什么建议可以达到同样的效果?)

回答

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.

+0

Arghh ...该网站基于CodeIgniter,运行本地和现场服务器,也使用终端进程很多,所以我努力避免使用'$ argv'来玩弄东西向上;尽管看起来我无法避免它更长的时间... –

+0

你最初的答案最后编辑看起来像一个整洁的小技巧! ;-) –

+0

这应该防止它干扰正常使用。 – 3ventic