PHP - 类型转换



PHP 被称为动态类型语言。PHP 中变量的类型会动态变化。此特性在 PHP 中称为“类型转换”。

在 C、C++ 和 Java 中,您需要在后续代码中使用变量之前声明变量及其类型。变量只能取与声明类型匹配的值。

在 PHP 中,既不需要也不支持显式声明变量的类型。因此,PHP 变量的类型由分配给它的值决定,而不是相反。此外,当变量被分配不同类型的值时,其类型也会发生变化。

示例 1

查看 PHP 中以下变量赋值。

<?php
   $var = "Hello";
   echo "The variable \$var is of " . gettype($var) . " type" .PHP_EOL;

   $var = 10;
   echo "The variable \$var is of " . gettype($var) . " type" .PHP_EOL;

   $var = true;
   echo "The variable \$var is of " . gettype($var) . " type" .PHP_EOL;

   $var = [1,2,3,4];
   echo "The variable \$var is of " . gettype($var) . " type" .PHP_EOL;
?>

它将产生以下输出 -

The variable $var is of string type
The variable $var is of integer type
The variable $var is of boolean type
The variable $var is of array type

您可以看到 "$var" 的类型根据分配给它的值动态变化。PHP 的此特性称为“类型转换”。

示例 2

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

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

这是它的输出 -

int(200)

示例 3

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

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

您将获得以下输出 -

int(200)

PHP Warning:  A non-numeric value encountered in /home/cg/root/53040/main.php on line 4

类型转换与类型转换

请注意,PHP 中的“类型转换”与“类型转换”略有不同。

  • 在类型转换中,PHP 会在必要时自动将类型从一种转换为另一种。例如,如果将整数值分配给变量,则它将成为整数。

  • 另一方面,类型转换发生在用户显式定义他们想要转换到的数据类型时。

示例

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

<?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"
广告