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 条评论
登录 后参与评论

相关文章

来自专栏算法与数据结构

实验9-3 编写一个存储过程proc_test_char

      使用@source2替换@target中出现的@source1的结果,别名rep

955
来自专栏web前端

Vuejs --04 计算属性

一、使用原因      1、模板中表达式很便利,但实际上只适用于简单的运算,不适宜放入太多逻辑运算,例如: <div id="example"> {{ mess...

1967
来自专栏Pythonista

python内建函数

abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的模。例如:

931
来自专栏测试开发架构之路

C语言之函数

  结构化程序设计主张按功能来分析需求,主要原则自顶向下,逐步求精,模块化等。 主张按功能把软件系统逐步细分,每个功能都负责对数据进行一次处理,每个功能接收一些...

2894
来自专栏java一日一条

Java内部类

这样看起来,类Draw像是类Circle的一个成员,Circle称为外部类。成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静...

561
来自专栏谈补锅

C语言之字符、整数、数组、字符串笔记

每种类型占用内存空间不一样,比如char占一个字节,short占2个字节,int占4个字节,double占8个字节

1723
来自专栏炉边夜话

java 异常处理学习笔记

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

662
来自专栏数据结构与算法

41:判断元素是否存在

41:判断元素是否存在 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB描述 有一个集合M是这样生成的: (1) 已知 k 是集...

2966
来自专栏琯琯博客

PHP 操作 Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

1591
来自专栏Redis

Redis类型之sorted sets类型

Redis类型之sorted sets类型

1904

扫码关注云+社区