美文网首页17.11 PHP入门
10 函数、作用域

10 函数、作用域

作者: 海野夏桑 | 来源:发表于2017-12-18 16:52 被阅读4次

函数的一些问题

//稳健进行函数定义的方法,使用function_exists()
if(function_exists("f1") == false){
    function f1(){}
}

php非常多系统函数,有各种各样的作用,取查手册就可以了

参数

定义一个没有形参的函数,其实可以接受任意个数个参数的,并且这些实际参数都会放进一个数组中,可以用 func_get_args() 来获得

1.func_get_args()
2.func_num_args() //获取实参的数量
3.func_get_args($i) //获取第$i个实参,从0开始计数

返回值

return 语句来返回值。注意的是,return后无论跟不跟数据,都会终止函数的运行。

可变函数

和可变变量类似,函数的名字是一个变量

function f1(){
    ....
}
$v1 = "f1";
$v1();    //可以用变量名来调用函数啦

匿名函数

嘛,就是没名字的函数,有两个作用:

1.赋值给一个变量,然后可以像其他函数一样用变量名进行调用
2.作为另一个函数的实际参数进行使用,这样就可以在一个函数内,调用另一个函数了?

作用域

  • 局部作用域:函数内部范围
  • 超全局作用域:所有代码中都能用。只有系统定义的几个而已。$_GET,$_POST,$_REQUEST,$_SERVER,$_COOKIE,$SESSION,$_FILES,$GLOBALS 等等
  • 全局作用域:函数外部

一般全局不能访问局部,局部不能访问全局。

1.全局访问局部

在函数内部将变量定义为静态变量

static $v1 = 12;
//该语句只会执行一次,会令到变量$v1不会被销毁
//可见,静态变量可以用来统计一个函数被调用了多少次
2.局部访问全局(php真搞事情。。。局部居然不能直接访问全局?叫啥全局。。。)
//方法1:
//函数内部使用关键字声明全局变量同名变量
global $v1, $v2;

//方法2:
$GLOBALS['v1']

相关文章

  • JavaScript 作用域和闭包理解

    作用域: 分为函数作用域,和块级作用域; 函数作用域 函数作用域外面的无法访问函数作用域内部的变量和函数,这样就可...

  • JS的作用域

    JS的作用域: 全局作用域、函数作用域、eval 作用域、块级作用域 全局作用域: 函数作用域: 结果截屏: 说...

  • 详解Kotlin中的作用域函数

    Kotlin作用域函数 作用域函数,Kotlin在语法层面支持拓展函数,作用域函数,作用域函数是指对数据做一些变换...

  • 九月七号

    函数的作用域,函数里面取不到外面的东西,作用域在函数内部有效,函数的里面的东西外面也取不到 $aa=10;//外面...

  • 1. let , const 块级作用域

    作用域全局作用域 => global函数作用域 => 因函数执行而产生的作用域 块级作用域形式 : { }特点 :...

  • js 变量作用域问题 以及 let

    JavaScript中有以下两种作用域 全局作用域函数作用域全局作用域是函数之外(最外层代码)的作用域。在函数之外...

  • 第九天,函数作用域和声明提前

    函数作用域和函数声明提前。 函数作用域,分为全局作用域和部分作用域,在系统执行函数时会自动创建一个作用域,在执行完...

  • C - 作用域

    C - 作用域 一个 C 变量的作用域可以是: 块作用域 函数作用域 函数原型作用域 或 文件作用域 作用域描述程...

  • 作用域

    标识符的作用域有函数原型作用域、局部作用域(块作用域)、类作用域和 命名空间(namespace) 作用域 函数原...

  • 变量声明、声明提前和作用域

    一. 作用域 分为全局作用域和函数作用域 函数作用域简言之就是:变量在声明他们的函数体以及这个函数体嵌套的任意函数...

网友评论

    本文标题:10 函数、作用域

    本文链接:https://www.haomeiwen.com/subject/hlnywxtx.html