PHP 类型
PHP 是一种动态类型语言,在编写代码时,可以不提前指定变量的类型。PHP 会在程序运行时,根据赋给变量的值来确定其类型。
PHP 类型系统
PHP 支持多种类型,以下是主要的类型及其基本用法:
NULL
NULL
表示变量没有值或值为空。可以通过将变量设置为 NULL
来表示它没有值。
$var = NULL;
Boolean 布尔类型
布尔类型有两个值:TRUE
和 FALSE
。布尔类型通常用于条件判断。
$is_true = true;
$is_false = false;
Integer 整型
整型用于表示整数,不带小数点。可以用十进制、八进制、十六进制和二进制表示。
$int = 123; // 十进制
$oct = 0123; // 八进制
$hex = 0x1A; // 十六进制
$bin = 0b11111111; // 二进制
Float 浮点型
浮点型用于表示带小数点的数字。
$float = 1.23;
String 字符串
字符串用于表示文本,可以用单引号或双引号包围。
$str1 = 'Hello, World!';
$str2 = "Hello, World!";
数字字符串
数字字符串是包含数字的字符串,PHP 会在需要时自动将它们转换为相应的数值类型。
$num_str = "12345";
Array 数组
数组可以存储多个值。PHP 数组可以是索引数组或关联数组。
$index_array = [1, 2, 3];
$assoc_array = ["key1" => "value1", "key2" => "value2"];
Object 对象
对象是类的实例,可以包含属性和方法。
class MyClass {
public $prop1 = "value1";
public function myMethod() {
echo "Hello, World!";
}
}
$obj = new MyClass();
echo $obj->prop1; // 输出 "value1"
$obj->myMethod(); // 输出 "Hello, World!"
Enum 枚举
枚举用于表示一组可能的值。PHP 8.0 及以后版本支持枚举类型。
// PHP 8.0 及以上版本的枚举定义方式
enum Suit: string {
case Hearts = 'Hearts';
case Diamonds = 'Diamonds';
case Clubs = 'Clubs';
case Spades = 'Spades';
}
Resource 资源类型
资源类型用于引用外部资源,比如文件句柄、数据库连接等。
$file = fopen("test.txt", "r");
Callback / Callable 类型
Callable 类型表示可以调用的内容,比如函数或方法。
function myFunction() {
echo "Hello, World!";
}
$callable = 'myFunction';
$callable(); // 调用 myFunction,输出 "Hello, World!"
Mixed
Mixed 类型表示可以是任意类型。
function mixedFunction($param): mixed {
return $param;
}
Void
Void 类型表示函数没有返回值。
function voidFunction(): void {
echo "This function returns nothing.";
}
Never
Never 类型表示函数不会返回值,因为它要么抛出异常,要么调用 die()
、exit()
等终止程序的函数。这是 PHP 8.1 及以上版本的特性。
function neverFunction(): never {
throw new Exception("This function never returns.");
}
相对类类型
相对类类型(self
, parent
)用于表示类之间的继承关系。这是 PHP 7.4 及以上版本的特性。
Value 类型
VValue 类型表示值的类型,可以是标量或对象。这是 PHP 7.4 及以上版本的特性。
Iterable 可迭代对象
Iterable 类型表示可以被遍历的对象或数组。
function iterate(iterable $items) {
foreach ($items as $item) {
echo $item;
}
}
$items = [1, 2, 3];
iterate($items); // 输出 "123"
类型声明
类型声明用于函数参数和返回值的类型约束。
function add(int $a, int $b): int {
return $a + $b;
}
echo add(1, 2); // 输出 3
类型转换
类型转换用于将一种类型转换为另一种类型。
$var = '123';
$int_var = (int)$var; // 将字符串转换为整数