1. 作用域
- 变量作用域,也叫”变量范围”, 即定义变量时的上下文环境
- 变量作用域,通俗的说,就是变量的生效范围
- 一个变量必定属于一个作用域, 这个作用域也包括了当前作用域中引入其它文件
- 也有不受作用域限制的变量,例如超全局变量, 在程序中任何地方都是有定义的
- 函数作用域: php 中只有函数可以创建作用域, 函数之外的代码全部在全局空间中
序号 |
作用域 |
描述 |
1 |
函数作用域 |
使用function 关键字创建的作用域 |
2 |
全局作用域 |
函数之外的变量生效范围 |
- php 中没有块作用域的概念, 这与其它编程语言不同, 请留意
- 根据作用域不同, 变量可以分为三类:
序号 |
变量类型 |
描述 |
1 |
私有变量 |
函数中定义的变量 |
2 |
全局变量 |
函数之外定义的变量 |
3 |
超全局变量 |
也叫预定义变量,访问不受作用域限制 |
<?php
// 超全局变量不需要定义,不需要初始化
// $GLOBALS = ....;;
# 变量作用域
// 全局作用域
$siteName = 'php中文网';
// 全局变量会自动注册也为超全局变量数组$GlOBALS的一个值
// 超全局变量不受作用域限制
// print_r($GLOBALS['siteName']);
// 声明函数: 同时也创建一个函数作用域 getInfo()是变量名
function getInfo() : string
{
// 定义了一个函数"私有变量"
// 1. 方法1: global
// global $siteName; 此方法可以访问全局变量
// 2. 使用超全局变量 $GLOBALS 超全局变量
$private = $GLOBALS['siteName'];
// 函数中可以直接访问超全局变量
echo $_SERVER['SCRIPT_NAME']. '<br>';
return $private;
}
echo getInfo();
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()
: 返回布尔值
<?php
// 常量是代码中不需要更新的数据
// 查看一下当前系统中有哪些常量
// print_r(get_defined_constants());
// 分组查看
// print_r(get_defined_constants(true));
//常量不能更新 所以常量一般是不需要更新的数据用,比如年龄 等
//这里定义了一个常量APP_PATH
define('APP_PATH', __DIR__ . '/app/admin');
// echo APP_PATH;
print_r(get_defined_constants(true)['user']);
个人总结:老师讲的,今天又复习了一遍,能理解百分之80左右吧,只是这些代码看过之后又会忘掉每个代码词的意思,毕竟不懂英文。下午预习运算符。