Blogger Information
Blog 52
fans 0
comment 3
visits 42300
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php学习第二章 作用域静态变量和常量的认识
王小飞
Original
502 people have browsed it

1. 作用域

  • 变量作用域,也叫”变量范围”, 即定义变量时的上下文环境
  • 变量作用域,通俗的说,就是变量的生效范围
  • 一个变量必定属于一个作用域, 这个作用域也包括了当前作用域中引入其它文件
  • 也有不受作用域限制的变量,例如超全局变量, 在程序中任何地方都是有定义的
  • 函数作用域: php 中只有函数可以创建作用域, 函数之外的代码全部在全局空间中
序号 作用域 描述
1 函数作用域 使用function关键字创建的作用域
2 全局作用域 函数之外的变量生效范围
  • php 中没有块作用域的概念, 这与其它编程语言不同, 请留意
  • 根据作用域不同, 变量可以分为三类:
序号 变量类型 描述
1 私有变量 函数中定义的变量
2 全局变量 函数之外定义的变量
3 超全局变量 也叫预定义变量,访问不受作用域限制
  1. <?php
  2. // 超全局变量不需要定义,不需要初始化
  3. // $GLOBALS = ....;;
  4. # 变量作用域
  5. // 全局作用域
  6. $siteName = 'php中文网';
  7. // 全局变量会自动注册也为超全局变量数组$GlOBALS的一个值
  8. // 超全局变量不受作用域限制
  9. // print_r($GLOBALS['siteName']);
  10. // 声明函数: 同时也创建一个函数作用域 getInfo()是变量名
  11. function getInfo() : string
  12. {
  13. // 定义了一个函数"私有变量"
  14. // 1. 方法1: global
  15. // global $siteName; 此方法可以访问全局变量
  16. // 2. 使用超全局变量 $GLOBALS 超全局变量
  17. $private = $GLOBALS['siteName'];
  18. // 函数中可以直接访问超全局变量
  19. echo $_SERVER['SCRIPT_NAME']. '<br>';
  20. return $private;
  21. }
  22. echo getInfo();
  23. echo $_SERVER['SCRIPT_NAME']. '<br>';

2. 常量

2.1 特征

序号 特征
1 常量前面没有美元符号$
2 常量创建时必须初始化
3 常量禁止更新和删除
4 常量不受作用域限制
5 推荐使用大写字母加下划线命名

2.2 函数/关键字

序号 定义方式 描述
1 get_defined_constants() 查看系统所有常量
2 defined() 检测常量是否存在
3 define() 创建常量
4 const 关键字 创建常量
5 constant() 获取常量值
  • get_defined_constants(true): 常量分组打印,自定义常量在user分组
  • defined(): 返回布尔值
  1. <?php
  2. // 常量是代码中不需要更新的数据
  3. // 查看一下当前系统中有哪些常量
  4. // print_r(get_defined_constants());
  5. // 分组查看
  6. // print_r(get_defined_constants(true));
  7. //常量不能更新 所以常量一般是不需要更新的数据用,比如年龄 等
  8. //这里定义了一个常量APP_PATH
  9. define('APP_PATH', __DIR__ . '/app/admin');
  10. // echo APP_PATH;
  11. print_r(get_defined_constants(true)['user']);

个人总结:老师讲的,今天又复习了一遍,能理解百分之80左右吧,只是这些代码看过之后又会忘掉每个代码词的意思,毕竟不懂英文。下午预习运算符。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:php非常适合全栈开发, 所以知识点非常多, 一定要多做总结
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post