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


    image

    回顾

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

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

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

    自定义函数

    返回值

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

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

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

    clip_image002

    参数传值

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

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

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

    引用传递

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

    clip_image004

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

    clip_image006

    内存分析

    clip_image008

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

    参数作用

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

    作用域

    作用域概念

    1. 什么是作用域?

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

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

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

    全局作用域

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

    局部作用域

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

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

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

    全局作用域:

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

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

    作用域证明

    clip_image010

    跨域使用变量

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

    局部使用全局作用域

    方案一:

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

    方案二:

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

    clip_image012

    全局使用局部作用域

    方案一

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

    方案二

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

    方案三

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

    引用全局变量

    clip_image014

    创建全局变量

    clip_image016

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

    clip_image018

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

    clip_image020

    参数默认值

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

    语法:形参 = 默认值

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

    clip_image022

    静态变量

    1. 什么是静态变量?

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

    语法:static $变量
    clip_image024

    内存分析

    clip_image026

    匿名函数

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

    语法

    变量 = function(参数列表){

    //函数体

    //返回值

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

    clip_image028

    匿名函数的使用

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

    clip_image030

    匿名函数的使用

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

    伪类型

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

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

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

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

    clip_image032

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

    可变函数

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

    clip_image034

  • 相关阅读:
    用JS打开新窗口,防止被浏览器阻止的方法
    谷歌浏览器插件开发教程7
    谷歌浏览器插件开发教程6
    谷歌浏览器插件开发教程5
    谷歌浏览器插件开发教程4
    谷歌浏览器插件开发教程3
    谷歌浏览器插件开发教程2
    谷歌浏览器插件开发教程1
    从网站上偷图偷音乐偷视频教程
    pixijs shader 实现图片波浪效果
  • 原文地址:https://www.cnblogs.com/lifushan/p/5414644.html
Copyright © 2020-2023  润新知