变量作用域
-
变量作用域,也叫变量范围,即定义变量是的上下文环境
-
通俗的说就是变量的生效范围
-
一个变量必定属于一个作用域,这个作用域也包括了当前作用域中引入的其他文件
-
也有不受作用域限制的变量,例如超全局变量,在程序中的任何方都是有定义的
-
函数作用域:php 中只有函数可以创建作用域,函数之外的代码全部在全局空间中
作用域 |
描述 |
函作用域 |
使用function 关键字创建的作用域 |
全局作用域 |
函数之外的变量生效范围 |
变量类型 |
描述 |
私有变量 |
函数中定义的变量 |
全局变量 |
函数之外定义的变量 |
超全局变量 |
也叫预定义变量,访问不收受作用域的限制 |
- 超全局变量,也叫超全局数组,随系统加载,因此在所有脚本中均有定义,全局和函数中都可以访问
序号 |
变量名 |
描述 |
1 |
$GLOBALS |
引用全局作用域中可用的全部变量 |
2 |
$_SERVER |
服务器和执行环境信息 |
3 |
$_GET |
HTTP GET 请求:通过 URL 参数传递给当前脚本的变量的数组 |
4 |
$_POST |
HTTP POST 请求:将变量以关联数组形式传入当前脚本 |
5 |
$_FILES |
HTTP 文件上传变量,保存着上传文件的全部信息 |
6 |
$_COOKIE |
通过 HTTP cookies 方式传递给当前脚本的变量的数组 |
7 |
$_SESSION |
当前脚本可用 SESSION 变量的数组 |
8 |
$_REQUEST |
默认情况下包含了$_GET $_POST $_COOKIE 的数组 |
9 |
$_ENV |
通过环境方式传递给当前脚本的变量的数组 |
示例代码
<?php
# 变量类型转换
// 自动转换
$a = null;
$b = true;
$c = false;
$d = '5g';
$e = 'php';
$f = 15;
echo $a + 10, '<br>';
echo $b + 10, '<br>';
// 字符串转数值型会有警告,但代码仍会执行, 推荐使用强制转换
echo $d + 10, '<br>';
echo $e + 10, '<br>';
// 整数15转为字符串'15'
echo $e . $f;
echo '<hr>';
// 强制转换
// 转换提示符: (int),(sgring)...
// (int)将$d强制转为整数,不再有警告信息
echo (int) $d + 10, '<br>';
// intval()转整数
echo intval($d) + 18, '<br>';
// strval($f)转字符串
echo strval($f) . ' hello', '<br>';
// 以上通过提示符和函数完成的强制转换,并不改变变量原始类型
// $f 依然是整数类型:integer
echo gettype($f), '<br>';
// settype()可将变量类型永久转换
settype($f, 'string');
// $f 永久的成为字符串类型
echo gettype($f), '<br>';
|