首页 > 其他 > 详细

20141223--全局使用局部变量+静态变量-01

时间:2016-04-20 23:47:30      阅读:382      评论:0      收藏:0      [点我收藏+]

技术分享

 

回顾

运算符:算术,比较,逻辑,赋值,三目,错误抑制,位运算(三码),自操作,字符串

执行结构:顺序,分支(if和switch),循环(for,while,do-while,foreach)

函数:自定义函数(函数名,参数(形参,实参),函数体,返回值)

自定义函数

返回值

返回值指的当函数调用结束以后,该函数给外部调用处返回一些列的数据(数据类型任意:八个数据类型)

如果函数没有任何返回值,可以理解为函数返回的是NULL。

PHP中函数可以没有返回值。

技术分享

参数传值

传值方式:值传递(默认的)和引用传递

值传递:将实参复制一份,传递给形参(形参与外部实参变量没有关系),值传递可以通过在调用函数的时候直接使用数据常量。

引用传递:形参是获得实参所指向的数据的内存地址,形参与实参共同指向同一个内存地址。

引用传递

引用传递语法:在定义函数的时候,给形参使用地址符号&,调用引用传递的函数的时候,必须使用变量(实参必须是变量:不能是数据常量)传递。

技术分享

引用传递不能使用数据常量

技术分享

内存分析

技术分享

特别注意:引用传值只能使用变量传数据。

参数作用

将函数外部的数据传入到函数内部供其使用

作用域

作用域概念

1. 什么是作用域?

作用域指的就是变量所能使用的范围。

作用域分为两类:全局作用域和局部作用域。

2. 全局作用域和局部作用域定义?

全局作用域

只要在函数外部定义的变量都是全局作用域

局部作用域

在函数内部定义的变量称之为局部作用域

3. 全局作用域和局部作用域功能?

局部作用域的变量只能在函数的内部使用,函数外部不能使用。

全局作用域:

JS中:全局作用域的变量可以在函数的内外都使用

PHP中:全局作用域只能在函数外部使用

作用域证明

技术分享

跨域使用变量

想要在函数的内部使用全局变量,在函数的外部使用局部变量。

局部使用全局作用域

方案一:

让函数在定义的时候采用引用传值。

方案二:

使用系统预定义超全局变量$GLOBALS,该变量保存了所有的全局变量。

技术分享

全局使用局部作用域

方案一

让函数在定义的时候采用引用传值。

方案二

返回值:将内部数据(局部变量)作为返回值。

方案三

使用global关键字:将局部变量全局化(在创建局部变量的同时,创建全局变量:当前全局变量不存在,如果存在就会产生引用)

引用全局变量

技术分享

创建全局变量

技术分享

内存分析1:引用全局变量

技术分享

内存分析2:创建全局变量

技术分享

参数默认值

在定义函数的时候,给形参指定默认值,在进行函数调用的时候,可以不给有默认值的参数传递实参。

语法:形参 = 默认值

注意:如果一个参数列表中存在有默认值的参数,那么该参数必须在最右边(后面)

技术分享

静态变量

1. 什么是静态变量?

在函数内部使用static关键字修饰的变量,函数在多次调用的时候能够共同使用该变量(跨函数共享变量)

语法:static $变量
技术分享

内存分析

技术分享

匿名函数

没有函数名的函数叫匿名函数。

语法

变量 = function(参数列表){

//函数体

//返回值

}; //整体是赋值语句,所以需要语句结束符

技术分享

匿名函数的使用

因为变量保存了函数的地址,所以必须通过变量来找到函数。系统要识别函数,只认括号,需要给变量增加一个括号来告诉系统当做函数处理。

技术分享

匿名函数的使用

匿名函数通常用于做别的函数的参数:回调函数

伪类型

指的是定义好的函数,需要指定的数据类型作为参数或者返回值,是一种对用户的帮助。

mixed:数据类型有很多种,不具体限制

number:数字类型:整型和浮点型

callback:回调函数,指的需要一个可以被执行的函数的名字字符串。

技术分享

void:null,不需要参数或者没有返回值

可变函数

可以变化的函数,函数名字是一个变量的值,可以通过变量直接访问函数。

技术分享

20141223--全局使用局部变量+静态变量-01

原文:http://www.cnblogs.com/lifushan/p/5414644.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!