1.变量声明
变量在类中被称为属性(property)。
[类型] $标识符 [= 初始值];
2.变量分类
2.1全局变量
名称 | 修饰符 |
全局变量 | —————— |
2.1成员变量
名称 | 修饰符 |
静态属性(类体内) | 用static 修饰 |
实例属性 | —————— |
2.2局部变量
名称 | 修饰符 |
静态变量(函数体内) | 用static 修饰 |
局部变量 | —————— |
参数 | —————— |
默认值参数 | —————— |
引用参数 | 用 & 修饰 |
可变数量参数 | 用 ... 修饰 |
3.可变变量
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
使用了两个美元符号($
)以后,就可以作为一个可变变量。
$a = 'hello';
$$a = 'world';
//输出hello world
echo "$a ${$a}";
//等同于
echo "$a $hello";
4.赋值方式
4.1按值赋值(assign by value)
默认情况下,变量总是按值赋值(assign by value)。也就是说,当一个变量的值赋值给另外一个变量后,改变其中一个变量的值,将不会影响到另外一个变量的值。
4.2按引用赋值(assign by reference)
PHP还提供了另外一种方式给变量赋值:按引用赋值(assign by reference)。这意味着新的变量引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。
// 将'Bob'赋值给$foo
$foo = 'Bob';
// 通过$bar引用$foo
$bar =& $foo;
// 修改$bar变量
$bar = "My name is $bar";
echo $bar;
// $foo 的值也被修改
echo $foo;
//全都输出一样
My name is Bob
5.readonly只读属性
readonly
只读属性的值不能在初始化一次后更改(可以通过可变类型进行更改),只支持使用构造函数进行初始化,不可以在只读属性上直接赋默认值初始化,因为具有默认值的只读属性等同于常量。
readonly
修饰符只能应用于有类型的属性。可以使用 mixed
类型创建没有类型约束的只读属性。
readonly
修饰符不支持静态属性。
class BlogData
{
public readonly Status $status;
public function __construct(Status $status)
{
$this->status = $status;
}
}
6.超全局(superglobals)变量
超全局变量 | 描述 |
$GLOBALS | 引用全局作用域中可用的全部变量 |
$_SERVER | 服务器和执行环境信息 |
$_GET | HTTP GET 变量 |
$_POST | HTTP POST 变量 |
$_FILES | HTTP 文件上传变量 |
$_REQUEST | HTTP Request 变量 |
$_COOKIE | HTTP Cookies |
$_SESSION | Session 变量 |
$_ENV | 环境变量 |
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phplang/4937.html