PHP argv丢失,导致脚本无法运行

时间:2019-04-16 16:41:38

标签: php bash argv

我正在从bash调用PHP脚本,偶尔我会像这样提供2或3个参数

Bash脚本

 ip =  192.168.1.4
 name = machine2
 callScript=`/usr/bin/php check.php $ip $name`
 callScript2=`/usr/bin/php check.php $name`

如您所见,在某些情况下,我使用两个参数调用PHP脚本,而在另一个情况下使用一个参数调用PHP脚本。问题从第二个开始,因为PHP具有argv [1]和argv [2],然后PHP抱怨说PHP Notice: Undefined offset: 2,因为没有传递第二个参数

这是我的PHP脚本

$placeholder = NULL;
if ($argv[2] === NULL) {
   //Do nothing
} else {
   $placeholder = $argv[2];
}

我这样做是为了如果传递了第二个参数,请将其存储在占位符中,否则请不要执行任何操作。问题是PHP停止在我的代码的第二行,因为$ argv [2]不存在,因为我偶尔只提供一个参数。

1 个答案:

答案 0 :(得分:0)

检查是否已设置而不是将其设置为空。

$placeholder = (isset($argv[2]) ? $argv[2] : null);