深入php函数与变量作用域的详解

WBOY
풀어 주다: 2016-07-25 08:59:08
원래의
858명이 탐색했습니다.
  1. function &func(){
  2. return "";
  3. }
复制代码

2.在调用时,在函数前增加引用符号。

  1. $return = &func();
复制代码

PHP的作用域只有两种 1, 函数外,全局作用域。 2, 函数内,局部作用域。

法则:作用域不重叠。(全局不能访问局部,局部不能访问全局) 但是js是可重叠的。

特殊的:预定义变量(9大超全局数组变量)--注意是数组变量。 超全局:超级全局:既可以在全局使用,也可以在局部使用。所有的作用域都生效。

  1. $_GET['v1'] = "123";
  2. echo $_GET['v1']
复制代码

$GLOBALS 超级全局变量,是专门保存超全局变量的,注意没有下划线。

修改全局变量,会影响GLOBALS内元素的值;

原因:使用的一个数据空间。 相当于:

  1. $GLOBALS[‘v8’] = &$v8;
复制代码

2. create_function -- 创建函数的另一方式

  1. $func = create_function('$p',“echo $p);
复制代码

var_dump($func); 返回一个函数名。 次函数创建出来的函数名 为lambda风格。而且在函数名前有一个 不可见字符。Ascii为0的不可见字符。 也可以调用。 $result = ”\x0“."lamba8"(20); 注意要知道函数名才可调用。

最常用的地方出现在回调函数内。 因此 create_function所创建的函数,与普通函没有区别(存在函数的三个部分);

但是此函数不可以在定以前 调用,因此 只用执行 create_function才能得到该函数。 最常用的地方: 在 callback参数上,参数create_function 相当于一个回调结构入参。

匿名函数: 匿名函数 创建的函数是没有名的, 而是一个 对象: 与create_function的区别:

匿名函数究竟是什么? 1, 将匿名函数可以当值来看待(php中是对象类型的) 2, Php是通过 类 closure 类来实现匿名函数功能的。每一个匿名函数都是Closure类一个对象。Closure单词的意思是闭包。因此有时php也将 匿名函数称之为 闭包函数。 3, 为什么一个对象可以当函数来调用?(oop)

可以使用 外层作用域的变量的语法: 注意: 外层与全局的区别。外层可能是全局,也可能是局部。看当前匿名函数是定义的位置。

Use语法默认是值传递,可以引用传递. Callback 1, 函数名 2, Create_function 3, Function 匿名函数



원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!