PHP 类型变换

phpserver side programmingprogramming更新于 2025/8/19 9:52:17

定义和用法

PHP 被称为动态类型语言。PHP 不需要也不支持显式声明变量的类型。与 C、C++ 和 Java 不同,PHP 变量的类型由赋值决定,而不是反过来。此外,当赋值给变量不同类型的值时,其类型也会改变。PHP 这种处理变量值动态变化的方法称为类型变换。

$var="Hello"; // 变量为字符串类型
$var=100; // 同一个变量现在变为 int 类型

类型变换也会在表达式的计算过程中发生。在此示例中,包含数字的字符串变量在执行加法表达式时会自动转换为整数。

示例

<?php
$var1=100;
$var2="100";
$var3=$var1+$var2;
var_dump($var3);
?>

输出

将产生以下结果 −

int(200)

如果字符串以数字开头,则在执行计算时会忽略末尾的非数字字符(如果有)。但是,PHP 解析器会发出如下所示的通知。

示例

<?php
$var1=100;
$var2="100 days";
$var3=$var1+var2;
var_dump($var3);
?>

输出

这将产生以下结果 −

PHP Notice: A non well formed numeric value encountered in ...
int(200)

类型转换会强制将变量用作特定类型。以下脚本展示了不同类型转换运算符的示例

示例

<?php
$var1=100;
$var2=(boolean)$var1;
$var3=(string)$var1;
$var4=(array)$var1;
$var5=(object)$var1;
var_dump($var2, $var3, $var4, $var5);
?>

输出

这将产生以下结果 −

bool(true)
string(3) "100"
array(1) {
   [0]=>
   int(100)
}
object(stdClass)#1 (1) {
   ["scalar"]=>
   int(100)
}

也可以通过将变量括在双引号中来将变量转换为字符串

示例

<?php
$var1=100.50;
$var2=(string)$var1;
$var3="$var1";
var_dump($var2, $var3);
?>

输出

这将产生以下结果 −

string(5) "100.5"
string(5) "100.5"

相关文章