首页 > 文章列表 > 如何在 PHP 函数中判断变量类型?

如何在 PHP 函数中判断变量类型?

php 判断变量类型
420 2024-04-23

PHP 中可以通过 gettype() 函数获取变量类型,该函数返回字符串形式的类型信息,如 string、integer 等。另外,is_* 函数系列可用于判断特定类型,如 is_string() 判断是否是字符串。

如何在 PHP 函数中判断变量类型?

如何在 PHP 函数中判断变量类型?

在 PHP 中,确定变量类型的最便捷方式是使用 gettype() 函数。此函数返回一个字符串,表示变量的类型。以下是一些示例:

$variable = 'string';
echo gettype($variable); // 输出:string

$variable = 123;
echo gettype($variable); // 输出:integer

$variable = 123.45;
echo gettype($variable); // 输出:double

$variable = true;
echo gettype($variable); // 输出:boolean

$variable = [];
echo gettype($variable); // 输出:array

$variable = new stdClass();
echo gettype($variable); // 输出:object

除了 gettype() 函数,PHP 还提供了 is_* 函数系列,用于测试特定类型。例如:

$variable = 'string';
if (is_string($variable)) {
  echo '变量是字符串';
}

实战案例

假设我们有一个包含不同类型元素的数组,我们希望根据类型对数组进行分类。我们可以使用以下函数:

function categorizeVariables(array $variables): array
{
  $categorizedVariables = [];

  foreach ($variables as $key => $variable) {
    switch (gettype($variable)) {
      case 'string':
        $categorizedVariables['strings'][$key] = $variable;
        break;
      case 'integer':
        $categorizedVariables['integers'][$key] = $variable;
        break;
      case 'double':
        $categorizedVariables['doubles'][$key] = $variable;
        break;
      case 'boolean':
        $categorizedVariables['booleans'][$key] = $variable;
        break;
      case 'array':
        $categorizedVariables['arrays'][$key] = $variable;
        break;
      case 'object':
        $categorizedVariables['objects'][$key] = $variable;
        break;
    }
  }

  return $categorizedVariables;
}

在上面的示例中,categorizeVariables 函数将返回一个将数组元素分为不同类别(字符串、整数、双精度浮点数、布尔值、数组和对象)的关联数组。