可能是自己以前写程序太规范了,今天发现个PHP函数参数个数的问题,定义的函数有三个参数,但是使用函数的时候竟然传了四个参数,更意外的是程序运行没有错误,甚至没有警告。于是依靠搜索引擎和PHP文档仔细查看了下。PHP内置了几个关于函数参数的函数。

func_get_arg(int $arg_num)//获取传递的第 $arg_num 个参数,从0开始索引。

func_get_args()//获取传递参数的列表,以二维数组返回。

func_num_args()//返回传递给参数的个数

因为有了上面三个函数,即时定义函数的时候没有定义参数列表。实际调用函数的时候也不会出错,可以通过上面的三个函数接收参数。

function myfun($name, $value='') {$args = func_get_args();var_dump($args);var_dump(func_get_arg(0));echo 'Number of arguments is:', func_num_args(), '<br />';echo 'I am function<br />';
}myfun(12, 22, 36);输出结果为:
E:\website\www\info.php:13:
array (size=3)0 => int 121 => int 112 => int 323
E:\website\www\info.php:14:int 12
Number of arguments is:3
I am function

尽管如此,还是推荐按更标准的格式定义函数,让使用函数的用户明白各个参数的含义,传递参数的数据类型。

转载于:https://www.cnblogs.com/wayne173/p/5995872.html

PHP关于函数的参数问题相关推荐

  1. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]

    1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...

  2. python函数用法详解2(变量的作用域(全局变量、局部变量)、共享全局变量、函数返回值、函数的参数(位置参数、关键字参数、默认参数、不定长参数)、拆包、交换变量值、引用、可变和不可变类型)

    1. 变量作⽤域         变量作⽤域指的是变量⽣效的范围,主要分为两类:局部变量和全局变量. 局部变量         定义在函数体内部的变量,即只在函数体内部⽣效. def testA(): ...

  3. Python函数及其参数

    定义函数def >>> def MyfirstFunction(): print('第一个函数') >>> MyfirstFunction() 第一个函数 函数的参 ...

  4. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  5. [教程]Python函数的参数

    Python函数的参数 位置参数.默认值参数.可变参数.关键字参数和命名关键字参数 1 函数结构 def 函数名(参数):函数体返回值 2 位置参数 略 3 默认值参数 略 4 可变参数 # 可变长度 ...

  6. C++ main函数中参数argc和argv

    argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...

  7. 数组作为函数的参数传参时,数组名会退化为指针

    1.数组作为函数的参数传参时,数组名会退化为指针 数组作为函数的参数传参时,数组名会退化为指针,数值传参时,需要把数值的长度一起传过去,另外,sizeof()运算符包含字符串的哨兵'/0',而strl ...

  8. int main(int argc,char *argv[]),主函数的参数问题

    主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...

  9. python 函数 默认参数

    python 函数 默认参数 def add(a=1, b=2): # a,b设置默认参数c = a + breturn c c = add(a=2) # 如果不填,就是默认参数 print(c) 4

  10. python编程函数_python编程中函数和参数你必须知道的

    今天我们先聊少一点,就聊聊函数是什么和函数的参数,以及对这两个东西的思考 起源于抽象 在程序员写代码的时候,通常都会提到一个词叫抽象, 很多人都知道在面向对象中,将一个对象抽象为一个类,其实这就是我们 ...

最新文章

  1. css菜单缓慢滑动_如何使用HTML,CSS和JavaScript构建滑动菜单栏
  2. Arduino--1838红外遥控
  3. 计算机网络第2章(物理层)
  4. WTM系列视频教程:CodeFirst
  5. Spring : Spring AOP 中的增强(Advice)或者通知
  6. 开课吧9.9元学python靠谱吗-开课吧的Python课程怎么样?大概是多少钱?讲师是廖雪峰吗?...
  7. NSIS ---使用nsDialogs创建自定义页面,并获取输入到控件中的内容保存到一个XML文档中
  8. 一天一个产品分析之美拍_米米米米粒口红_新浪博客
  9. MATLAB迷宫算法 自动生成迷宫并可视化寻找出路
  10. [转]“荒”是民工用脚投票的权利自救
  11. 服务器503网页报错,网页为什么出现503错误?网页503错误的解决方法
  12. 基于babylon3D模型研究3D骨骼动画(1)
  13. mysql数据库怎么该用户名和密码_如何修改MySql数据库的用户名和密码?
  14. anaconda中的pkgs文件清理
  15. 哈佛结构和冯诺伊曼结构
  16. A16.从零开始前后端react+flask - 将前端数据保存到数据库
  17. 珠海沙龙PPT已上传!
  18. 数据库大作业 openGauss程序设计
  19. 上班第一天(4)--一个程序员的成长史(13)
  20. VGG——CNN经典网络模型(pytorch实现)

热门文章

  1. 如何为 Mac 添加新语言?
  2. iOS开发之超级签名-原理/机制/技术细节-完全解析(暂时还没有验证)
  3. DirEqual for Mac(文件夹快速比较工具)
  4. Hillstone设备管理-许可证安装
  5. 深度学习中的自动编码器:TensorFlow示例
  6. 子序列的个数 --- 庞果网
  7. C++中类中常规变量、const、static、static const(const static)成员变量的声明和初始化...
  8. 【Java6学习笔记】多线程编程中使用volatile保障原子性
  9. 居中 html css
  10. Adb connect监听指定的主机和端口/Adb监听Visual Studio Emulator for Android模拟器