PHP中的函数

  • 函数调用
  • function sum($x,$y) //形参:在声明函数时声明的参数 { // $x = 1; //如果在函数内对参数赋值,则会覆盖实参。 // $y = 2; $sum = 0; $sum = $x + $y; return $sum; //执行到return函数结束,后面不再执行 } sum(); sum(2,2); //实参:在调用函数时传递给形参的数值 echo sum(2,2); //通过return返回数据可作为值使用
  • 局部变量:函数内部声明与使用的变量 全局变量:在函数外声明,脚本任何地方均可以使用 Tips:在PHP函数中使用全局变量,要通过global关键字将这个 全局变量包含到函数中才能使用
  • $a = 1; $b = 2; function demo($a = '') { //global 须放在前面 //global $a,$b global 可包含多个全局变量 //$GLOBALS['a'] //声明全局变量 方法二 global $a; $a += 5; echo $a; } demo();
  • 静态变量可以在同一个函数中多次调用中共用 静态变量只能在函数或类中声明,不能在全局声明
  • function demo($a = '') { static $a = 0; //定义静态变量 $a++; echo "$a<br>"; } demo(); //输出1 demo(); //输出2
  • func_num_args():返回传递到函数的参数数目 function Test() { echo func_num_args(); } Test('a','b','c'); // 3 func_get_arg():返回参数列表中的第N个参数 function Test() { echo func_get_arg('1'); } Test('a','b','c'); //b 应用实例: function cls_mysql() { $mysql = func_get_args(); $conn = mysql_connect($mysql['0'], $mysql['1'], $mysql['2']); } cls_mysql('localhost:3306', 'root', '123456');
  • 我们自定义一个函数A,但是我们不直接去调函数A, 而是在函数B中去调用函数A,函数B通过接收函数A的 名字和参数来实现对函数A的调用,函数A称为回调函数。 function A($x,$y) { return $x*$y; } function B($a,$b,$fun) { return $a+$b+$fun($a,$b); } echo B(2,3,"A"); PHP回调函数的实现方法 php提供了两个内置函数call_user_func()和 call_user_func_array()提供对回调函数的支持 //mixed call_user_func_array 以数组的形式接收回调函数的 参数mixed call_user_func_array ( callable $callback , array $param_arr )call_user_func_array('f1',array('A','B')); //call_user_func的参数个数根据回调函数的参数来确定 mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )call_user_func_array ('f1','A','B');
  • 原文:http://wangyan.org/blog/php-note-6.html

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2014-11-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HTML5学堂

JavaScript | 获取数组中的单词并统计出现次数

HTML5学堂(码匠):如何通过JavaScrip实现数组元素的查找?在一个数组当中,找到所有的单词,并统计每个单词出现的次数。 功能需求 在一个自定义数组...

3367
来自专栏Jed的技术阶梯

详解 Java 对象与内存控制(上)

不管是类变量还是实例变量,你都不能引用一个还没有定义的变量,或者在引用之前没有定义的变量,如下图所示:

583
来自专栏烂笔头

Python标准库(1) — itertools模块

目录[-] 简介 官方描述:Functional tools for creating and using iterators.即用于创建高效迭代器的函数。...

2946
来自专栏十月梦想

变量作用域

********************************************************************************...

652
来自专栏xingoo, 一个梦想做发明家的程序员

JS面向对象高级特性

本篇是通过学习视频《一头扎进javascirpt高级篇》整理的一些相关知识,大致包括下面几个方面:   1 对象的创建方法   2 对象的对象属性、私有属...

20110
来自专栏小樱的经验随笔

strncmp函数——比较特定长度的字符串

strncmp函数用于比较特定长度的字符串。 头文件:string.h。 语法  int strncmp(const char *string1, const ...

2709
来自专栏架构说

指针和引用的区别

先看代码输出是什么? ? 最后输出是: 1234567890 hello 指针和引用主要区别 1 在C++中,指针和引用经常用于函数的参数...

2677
来自专栏小樱的经验随笔

【Java学习笔记之五】java数组详解

数组 概念 同一种类型数据的集合。其实数组就是一个容器。 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素...

2718
来自专栏靠谱PM

JavaScript基本语法(三)

一、数组的概念: 所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。

412
来自专栏漫漫深度学习路

C 中内存的一些操作

分配内存与释放内存 在C 中,下列函数的声明在 stdlib.h 中,在 C++, 声明在 cstdlib 中 malloc realloc calloc f...

17410

扫码关注云+社区