位置: 编程技术 - 正文

php cli模式下获取参数的方法(php in)

编辑:rootadmin

推荐整理分享php cli模式下获取参数的方法(php in),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php include path,php的cli模式,php的cli模式,phpinclude,php-cli模式,php的cli模式,phpinclude,php-cli,内容如对您有帮助,希望把文章链接给更多的朋友!

PHP在cli模式下接收参数有两种方法

1.使用argv数组

2.使用getopt方法

1.使用argv数组

例如:需要执行一个php,并传递三个参数(type=news, is_hot=1, limit=5)

创建test.php

在命令行执行

php test.php news 1 5

输出:

可以看到argv[0]为当前执行的php文件名称,而argv[1]~argv[3]则是传递的参数的值

argv[1]等于type的值

argv[2]等于is_hot的值

argv[3]等于limit的值

这样可以根据argv数组来获取传递的参数进行后续的处理操作。

缺点:

使用argv数组,可以按顺序获取传递的参数。但获取后,需要做一个对应处理,上例中需要把argv[1]对应type参数,argv[2]对应is_hot参数,argv[3]对应limit参数。而如果在传递的过程中,参数顺序写错,则会导致程序出错。

例如:

执行

php test.php news 1 5

输出:

而传递顺序不同,获取到的参数数值会不同,导致后续程序出错

执行

php test.php 1 5 news

输出:

因此在使用argv数组传递参数时,需要注意参数传递的顺序。

2.使用getopt方法

getopt 从命令行参数列表中获取选项

array getopt ( string $options [, array $longopts ] )

参数:

options

该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 “x” 识别了一个选项 -x。 只允许 a-z、A-Z 和 0-9。

php cli模式下获取参数的方法(php in)

longopts

选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(?)传入到脚本的选项。 例如,长选项元素 “opt” 识别了一个选项 ?opt。

options 可能包含了以下元素:

单独的字符(不接受值)

后面跟随冒号的字符(此选项需要值)

后面跟随两个冒号的字符(此选项的值可选)

选项的值是字符串后的第一个参数。它不介意值之前是否有空格。

options 和 longopts 的格式几乎是一样的,唯一的不同之处是 longopts 需要是选项的数组(每个元素为一个选项),而 options 需要一个字符串(每个字符是个选项)。

传值的分隔符可以使用空格或=。

可选项的值不接受空格作为分隔符,只能使用=作为分隔符。

返回值

此函数会返回选项/参数对,失败时返回 FALSE。

选项的解析会终止于找到的第一个非选项,之后的任何东西都会被丢弃。

1.使用options实例

a,b,c 为需要值

d 为可选值

e 为不接受值

执行

php test.php -a 1 -b 2 -c 3 -d=4 -e 5

输出:

2.使用longopts实例

type,is_hot 为需要值

limit 为可选值

expire 为不接受值

执行

php test.php --type news --is_hot 1 --limit= --expire=

输出:

3.找到第一非选项,后面忽略实例

执行

php test.php --type news --is_hots 1 --limit= --expire=

输出:

因为is_hots不是选项值(定义的是is_hot),所以从这里开始之后的参数,都被丢弃。

总结:

使用argv数组传参数,方法简单,实现方便。参数的顺序不能错,参数获取后需要做对应处理。

使用getopt方法,可使用参数名,参数顺序可随意,比较规范。(建议使用)

标签: php in

本文链接地址:https://www.jiuchutong.com/biancheng/290922.html 转载请保留说明!

上一篇:PHP+jQuery实现滚屏无刷新动态加载数据功能详解(jquery 滚动条)

下一篇:php 查找数组元素提高效率的方法详解(php 查找数组元素)

  • 退回以前年度费用怎么做帐
  • 科目余额表解析
  • 应收账款和应付账款对冲会计分录
  • 预缴的税款
  • 赠送客户的商品怎么入账
  • 软件开发减免的流转税是否缴纳所得税
  • 会计核算体系的建立
  • 本月完工入库会计分录
  • 地税保险单位编号是什么
  • 分公司所得税怎么交
  • 跨年的发票能红字冲销吗?
  • 开汽车租赁发票需要什么资料?
  • 企业并购重组有哪些
  • 固定资产出售怎么做账
  • 资金流量表国外部门如何记录
  • 无偿赠送资产需要交哪些税
  • 红利抵免的用法是什么
  • 新版edge浏览器兼容性视图怎么设置
  • 电脑隐藏软件图标快捷键
  • 公司从一个帐户里扣税吗
  • 微pe工具箱怎么用
  • php经典教程
  • 电脑legacy是什么意思
  • 企业所得税法规定,企业购置并实际使用
  • 进货的折扣该怎么算
  • 贷款支付的本息如何记账
  • 营业外收支的内容
  • 埃托沙国家公园发展观兽旅游的优势条件
  • 设计部工资计入什么费用
  • 报税营业成本可以乱填吗
  • 企业的存货采用计划成本核算的,在资产负债表日
  • 三维重建的主要步骤
  • 各浏览器主页的网址
  • 开了专票就不能享受政策
  • 存货的账务处理分录
  • pandas常见操作
  • day15-Servlet04
  • mongodb 入门
  • tempdb数据库能删么
  • 房地产企业买地
  • 弃置费用的现值计入固定资产
  • 预缴所得税年底处理账务吗
  • 理财产品分红和收益
  • 长期待摊费用是什么意思
  • 用友u8固定资产减少怎么撤销
  • sql脚本语言怎么写
  • 广告制作交文化建设税吗
  • 一般纳税人简易计税方法适用范围
  • 合伙企业怎么建账
  • 失控发票已补交什么意思
  • 厂房监理要点
  • 应付账款明细账怎么登记
  • 增值税及附加是什么税
  • 固定资产在以后会计期间可以转回吗
  • 留抵税额和待抵扣进项税额区别
  • 债券发行费用计入初始成本会计分录
  • 出纳 记账凭证
  • 绿化植物税率
  • 收到增值税发票后该如何处理啊?
  • 预缴的附加税月末结转吗
  • 长期待摊费用是经营性资产吗
  • sql的排序函数
  • cocos2dx官方教程
  • 如何搭建react项目
  • 欢迎使用天翼智能网关
  • python中的命名规范
  • python编写api接口
  • 安卓手机管家哪个好用
  • python怎么编写二维码
  • android:testonly="true"
  • eventbus threadmode
  • 如何搭建python项目架构
  • 以下关于android应用程序的目录结构描述中,不正确的是
  • 河北省国家税务局长简介
  • 郑州地方税务局网站官网
  • 深圳市国家税务局电话
  • 天津地税自助办税终端
  • 印花税应税凭证数量是什么意思
  • 什么是美国注册商标
  • 青岛国税服务电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设