从cli运行PHP脚本为:
$ php test.php {a=1,b=2,c=3}
$argv
结构的结果为:
[
0 => test.php
1 => a=1
2 => b=2
3 => c=3
]
问题。
{ ... }
的意图是什么?谢谢!
答案 0 :(得分:1)
每section 3.5.1的the Bash manual:
括号扩展是一种机制,通过该机制可以生成任意字符串。此机制类似于文件名扩展,但是生成的文件名不必存在。大括号扩展的模式采用可选的 preamble 的形式,然后是一系列用逗号分隔的字符串或一对大括号之间的序列表达式,然后是可选的 postscript 。前缀在括号中的每个字符串之前都有前缀,然后将后记附加到每个结果字符串之后,从左向右扩展。
在您的情况下,没有序言或后记,因此它只是扩展到列表中的每个元素。
您可以使用echo
查看结果:
echo {a=1,b=2,c=3}
哪个输出:
a=1 b=2 c=3
如果要使用 preamble 和 postscript :
echo before{a=1,b=2,c=3}after
您得到:
beforea=1after beforeb=2after beforec=3after
在尝试将文件复制或移动到备份中时,通常使用以下方法:
cp somefile.txt{,.bak}
其中扩展到:
cp somefile.txt somefile.txt.bak
答案 1 :(得分:-1)
{}
在PHP
中表示为一个对象,当var_dump
是一个类的实例时,您会发现它被{}
包裹。我发现有一个文档描述了如何使用$argv
https://www.php.net/manual/en/reserved.variables.argv.php