数码资讯
php模式下的参数获取方法
PHP有两种方法可以在CLI模式下接收参数 1。使用argv数组 2。使用getopt方法 1。使用argv数组 例如,你需要执行一个PHP和传递三个参数(类型=消息,is_hot = 1,= 5) 创建test.php < PHP print_r($ argv); > 在命令行执行 php tes
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
PHP有两种方法可以在CLI模式下接收参数
1。使用argv数组
2。使用getopt方法
1。使用argv数组
例如,你需要执行一个PHP和传递三个参数(类型=消息,is_hot = 1,= 5)
创建test.php
< PHP
print_r($ argv);
>
在命令行执行
php test.php新闻15
输出:
阵列
(
{ 0 } = > test.php
{ 1 }新闻
{ 2 } = 1
{ 3 } = > 5
)
你可以看到,argv { 0 }是目前执行的PHP文件的名称,并~ argv argv { 1 } { 3 }是值传递的参数。
argv { 1 }等于类型的值
argv { 2 }等于is_hot价值
argv { 3 }等于极限值
这可以基于argv数组为后续加工得到的参数传递。
缺点:
使用argv数组,你可以要传递的参数,但并购后,需要进行相应的处理,在本例中,我们需要argv { 1 }相应类型的参数,is_hot argv argv { 2 } { 3 }极限对应的参数,对应的参数,如果参数顺序写错在传输的过程中,程序是错误的。
例如:
< PHP
$参数=阵();
参数类型} = { $ $ argv { 1 };
{ } =参数'is_hot美元的美元argv { 2 };
{ } =参数'limit美元的美元argv { 3 };
print_r(美元的);
>
实施
php test.php新闻15
输出:
阵列
(
{类型>新闻
{ is_hot } = > 1
{限制} = 5
)
当传输序列不同时,得到的参数数目不同,导致后续程序出错。
实施
php test.php 15新闻
输出:
阵列
(
{类型} > 1
{ is_hot } = > 5
{限制>新闻
)
因此,当使用argv数组参数传递,我们需要注意的参数传递顺序。
2。使用getopt方法
getopt从命令行参数列表获取选项
阵列getopt(字符串数组longopts选项{,})
参数:
选项
字符串中的每个字符作为期权特征,并选择匹配传入的剧本始于一个连字符(-)。例如,一个选项字符串X标识选项-x.only a-z、A-Z和0-9是允许的。
longopts
一个选项数组,此数组中的每个元素作为一个选项字符串匹配,传递到脚本两连字符(-)选项。例如,长期选择单元,选择,确定一个选项-选择。
选项可以包含以下元素:
独立字符(不可接受的值)
冒号后面的字符(这个选项需要一个值)
后跟两个冒号字符(这个选项的选择)
该选项的值是字符串后面的第一个参数。
选择和longopts格式几乎是一样的。唯一不同的是,longopts需要选项数组(每个元素是一个选项),而选项需要一个字符串(每个字符是一个选项)。
传递值分隔符可以使用空格或=。
可选值不接受空间作为分隔符,只能使用分隔符作为分隔符。
返回值
这个函数返回选项参数对,当它失败时返回false。
该选项的解析将以所发现的第一个非选项终止,并将丢弃任何选项。
1。使用选项实例
a、b、c是必需的值。
d是可选值。
E是一个不可接受的值。
< PHP
美元= getopt('参数:B C D E:::);
print_r(美元的);
>
实施
php test.php - 1 B 2 C 3 D = 4 - 5
输出:
阵列
(
{ 1
{ 2
{ 3
{ > > > 4
{ >
)
2。使用longopts实例
型,is_hot是必要的价值
限制是可选值。
过期是不能接受的价值。
< PHP
longopt美元=阵列(
类型:,
is_hot:',
限制,
到期日
);
$参数= getopt('',longopt美元);
print_r(美元的);
>
实施
php test.php型新闻is_hot 1——极限= 10到期的= 100
输出:
阵列
(
{类型>新闻
{ is_hot } = > 1
{限制} = 10
{过期}
)
三.找到第一个非选项,然后忽略实例。
< PHP
longopt美元=阵列(
类型:,
is_hot:',
限制,
'expire'
);
$参数= getopt('',longopt美元);
print_r(美元的);
>
实施
php test.php型新闻is_hots 1——极限= 10到期的= 100
输出:
阵列
(
{类型>新闻
)
因为is_hots不是一个期权价值(定义is_hot),参数,从这里开始被丢弃。
总结:
使用argv数组参数传递,方法简单方便,参数的顺序不能错,和相应的处理后需要得到的参数。
使用getopt方法,参数名可以使用,参数的顺序是可选的,标准的比较。(推荐使用)
以上是本文的全部内容,希望本文的内容能给大家的学习或工作带来一定的帮助,同时也希望能给予更多的支持!
1。使用argv数组
2。使用getopt方法
1。使用argv数组
例如,你需要执行一个PHP和传递三个参数(类型=消息,is_hot = 1,= 5)
创建test.php
< PHP
print_r($ argv);
>
在命令行执行
php test.php新闻15
输出:
阵列
(
{ 0 } = > test.php
{ 1 }新闻
{ 2 } = 1
{ 3 } = > 5
)
你可以看到,argv { 0 }是目前执行的PHP文件的名称,并~ argv argv { 1 } { 3 }是值传递的参数。
argv { 1 }等于类型的值
argv { 2 }等于is_hot价值
argv { 3 }等于极限值
这可以基于argv数组为后续加工得到的参数传递。
缺点:
使用argv数组,你可以要传递的参数,但并购后,需要进行相应的处理,在本例中,我们需要argv { 1 }相应类型的参数,is_hot argv argv { 2 } { 3 }极限对应的参数,对应的参数,如果参数顺序写错在传输的过程中,程序是错误的。
例如:
< PHP
$参数=阵();
参数类型} = { $ $ argv { 1 };
{ } =参数'is_hot美元的美元argv { 2 };
{ } =参数'limit美元的美元argv { 3 };
print_r(美元的);
>
实施
php test.php新闻15
输出:
阵列
(
{类型>新闻
{ is_hot } = > 1
{限制} = 5
)
当传输序列不同时,得到的参数数目不同,导致后续程序出错。
实施
php test.php 15新闻
输出:
阵列
(
{类型} > 1
{ is_hot } = > 5
{限制>新闻
)
因此,当使用argv数组参数传递,我们需要注意的参数传递顺序。
2。使用getopt方法
getopt从命令行参数列表获取选项
阵列getopt(字符串数组longopts选项{,})
参数:
选项
字符串中的每个字符作为期权特征,并选择匹配传入的剧本始于一个连字符(-)。例如,一个选项字符串X标识选项-x.only a-z、A-Z和0-9是允许的。
longopts
一个选项数组,此数组中的每个元素作为一个选项字符串匹配,传递到脚本两连字符(-)选项。例如,长期选择单元,选择,确定一个选项-选择。
选项可以包含以下元素:
独立字符(不可接受的值)
冒号后面的字符(这个选项需要一个值)
后跟两个冒号字符(这个选项的选择)
该选项的值是字符串后面的第一个参数。
选择和longopts格式几乎是一样的。唯一不同的是,longopts需要选项数组(每个元素是一个选项),而选项需要一个字符串(每个字符是一个选项)。
传递值分隔符可以使用空格或=。
可选值不接受空间作为分隔符,只能使用分隔符作为分隔符。
返回值
这个函数返回选项参数对,当它失败时返回false。
该选项的解析将以所发现的第一个非选项终止,并将丢弃任何选项。
1。使用选项实例
a、b、c是必需的值。
d是可选值。
E是一个不可接受的值。
< PHP
美元= getopt('参数:B C D E:::);
print_r(美元的);
>
实施
php test.php - 1 B 2 C 3 D = 4 - 5
输出:
阵列
(
{ 1
{ 2
{ 3
{ > > > 4
{ >
)
2。使用longopts实例
型,is_hot是必要的价值
限制是可选值。
过期是不能接受的价值。
< PHP
longopt美元=阵列(
类型:,
is_hot:',
限制,
到期日
);
$参数= getopt('',longopt美元);
print_r(美元的);
>
实施
php test.php型新闻is_hot 1——极限= 10到期的= 100
输出:
阵列
(
{类型>新闻
{ is_hot } = > 1
{限制} = 10
{过期}
)
三.找到第一个非选项,然后忽略实例。
< PHP
longopt美元=阵列(
类型:,
is_hot:',
限制,
'expire'
);
$参数= getopt('',longopt美元);
print_r(美元的);
>
实施
php test.php型新闻is_hots 1——极限= 10到期的= 100
输出:
阵列
(
{类型>新闻
)
因为is_hots不是一个期权价值(定义is_hot),参数,从这里开始被丢弃。
总结:
使用argv数组参数传递,方法简单方便,参数的顺序不能错,和相应的处理后需要得到的参数。
使用getopt方法,参数名可以使用,参数的顺序是可选的,标准的比较。(推荐使用)
以上是本文的全部内容,希望本文的内容能给大家的学习或工作带来一定的帮助,同时也希望能给予更多的支持!
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。