1
我正在写一个php代码,它是从Unix控制台运行的,有几个可选开关。我在使脚本识别交换机时遇到了问题。
我从控制台运行脚本这样
./<scriptname>.php v
希望的“V”开关将在代码被拾起,但它不似乎是。这是代码,它是为了捡起它。
global $argv; // specified, but probably not needed
$verbose = array_key_exists("v", $argv); // should work but it doesn't!
// $verbose= isset($_GET["v"]); // tried, but doesn't work because it's run from console
但是,尽管该线var_dump($argv);
输出的:
array(2) {
[0]=>
string(21) "./<scriptname>.php"
[1]=>
string(1) "v"
}
下面的行echo "\nverbose: :$verbose:\n";
输出verbose: ::
(这是false
)。
为什么? 非常感谢!
卫生署!谢谢。 – TomaszRykala 2012-04-23 11:08:06
除此之外,我不明白为什么会使用'array_key_exists()'''isset($ array [$ key])'是相同的并且快得多(他说,微优化) – DaveRandom 2012-04-23 11:08:40
感谢您的提示@DaveRandom。 – TomaszRykala 2012-04-23 11:11:00