PHP学习笔记——5.函数

目录:

PHP学习笔记——1.变量

PHP学习笔记——2.常量

PHP学习笔记——3.运算符

PHP学习笔记——4.控制结构

PHP学习笔记——5.函数

 

1.概念

  从编程的角度,

  将若干语句封装在一起,取个名字

  再依据名称进行调用,即为函数

2.声明及调用

  function abc(形参) {

  ...

  return 值;

  }

  abc(实参);

  实际上,形参即为变量名,实参即为变量值

3.命名规范

  和变量一致,但不区分大小写

4.默认参数

  function abc(形参=‘默认值‘) {

  ...

  }

  abc(); =>默认值

  abc(实参); =>传入值

  注:若有多个形参,且其中某个形参有默认值,则将其放在最后

5.函数的作用域

  局部变量:函数内部的变量

  全局变量:函数外部的变量

  默认情况下,函数体内的变量,与外界的变量无关

  注:JS中全局变量会被函数内部找到调用,但PHP不会

  执行函数式,会开辟一块独立调用空间,调用完即释放

6.函数的执行权与执行权的交回

  当调用函数时,程序的执行权进入到函数内部

  当语句执行完/return时,执行权即交回

7.函数返回值

  有return值则返回return值

  若没有return值或return为空则返回NULL

  注:return只能返回 一个 值/复合值

8.动态函数

  function wel(){

  echo ‘欢迎‘;

  }

  function hi(){

  echo ‘你好‘;

  }

  $func=$_GET[‘func‘]; <=wel/hi

  $func(); =>欢迎/你好

  加()后,PHP即会将括号前的值当做函数进行解析

9.引用传参

  $age=19;

  function foo(&$num){

  $num+=5;

  }

  foo($age);

  echo $age; =>24

  注:此时传递的不是$age的值19,而是将$age的地址传递给了$num,

  当$num+=5时,$age自然也跟着改变了

  所以,局部变量和全局变量并不是水火不容的

  是有机会相互影响的,如引用传参、超全局变量

10.递归

①定义

  函数在其内部调用自身

②初识

  例:求1到100的和

  可分析分:

  sum(100) == sum(99) + 100

  sum(99) == sum(98) + 99

  ...

  sum(2) == sum(1) +2

  sum(1) == 1

  即:

  function sum ($n) {
  if($n > 1) {
  return sum($n-1) + $n;
  }else{
  return 1;
  }
  }

  例:递归操作联级目录

  a{1,2(A,B<①②③>,C),3}

  则操作顺序依次为 1 2 A B ① ② ③ C 3

③注意

  因递归为自身调用自身,所以层次太深,不宜使用

  必须有一个终止条件

11.超全局变量

①定义

  一般情况下,页面内声明的‘普通全局变量‘,在函数内访问不到

  但:‘常量‘在函数内能访问

  且还有一类变量——超全局变量,在页面的任意一处(无论是多深层的函数),

  都可直接访问

②九大超全局变量

  $_GET[] =>接收地址栏参数

  $_POST[] =>接收POST型参数(如:用户注册参数)

  $_PEQVEST[] =>是$_GET、$_POST、$_COOKIE的并集

  $_FILES[] =>文件上传

  $_COOKIE[] =>用户登录

  $_SESSION[] =>用户登录

  $_ENV[]

  $_SERVER[] =>服务器及访客信息(如用户所使用的系统版本、IP地址等)

  $_SERVER[‘REMOTE_ADRR‘] =>用户IP

  $_SERVER[‘HTTP_USER_AGENT‘] =>用户浏览器信息

  $_GLOBALS[] =>页面内所有全局变量的‘名单‘,可在其中找到所有声明过的变量

  global关键字,用于在函数体内部引用全局变量

  例:$age = 5;

  function t(){

  global $age; =>引用了全局范围内的$age

  $age++;

  }

  t();

  echo $age; =>6

 

作者:@zhnoah
出处:http://www.cnblogs.com/zhnoah/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 
接,否则保留追究法律责任的权利。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。