php - PHP 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] 不存在,因为我有时只提供一个参数。
解决方案
检查它是否已设置而不是 null。
$placeholder = (isset($argv[2]) ? $argv[2] : null);
推荐阅读
- c# - Bot Framework 4.0 等效
- ibm-cloud-infrastructure - 删除用户配置文件中的权限
- reactjs - React Hooks:如何在 useEffect 中设置状态?
- python - 在 Python 中使用 TK 创建带有文本的进度条
- python - 如何阻止此代码引发错误 10053?
- symfony4 - 上传的文件,文件类型过滤器
- java - 正则表达式:如何在捕获单个组时匹配整个字符串
- java - 如何设置 targetCompatibility=1.8 和 sourceCompatibility=1.9 或更高版本的 IntelliJ/Gradle 项目?
- python - Python 线程:运行一个线程,丢弃所有其他线程的最佳实践
- javascript - 基于递归期间更改的值打破多重递归