首页 > 解决方案 > 为什么 PHP 在数组中保存不止一种类型?

问题描述

我是 PHP 脚本的初学者。据我所知,数组意味着相同类型元素的集合,但 PHP 违反了该规则。

这是我的代码:

    <!DOCTYPE html>
<html>
<body>
    <?php 
        $a = 10; 
        echo $a;

        $arr = array();

        for($i = 0; $i < 10; $i++){
            $arr[$i] = $i * $i; // Integer values
        }

        $arr[10]="Rohit"; // string value
        $arr[11] = 10.15; // float value
        $arr[12] = true; // boolean value

        for($i = 0; $i < COUNT($arr); $i++){
            echo "<br>".$arr[$i];
        }

        echo "<br>Length of array: ".COUNT($arr);
        echo "var_dump output: ".var_dump($arr);
    ?>
</body>
</html>

这是我得到的结果:

10
0
1
4
9
16
25
36
49
64
81
Rohit
10.15
1
Length of array: 13

C:\wamp\www\phpModules\check16_6_18_study.php:28:
array (size=13)
  0 => int 0
  1 => int 1
  2 => int 4
  3 => int 9
  4 => int 16
  5 => int 25
  6 => int 36
  7 => int 49
  8 => int 64
  9 => int 81
  10 => string 'Rohit' (length=5)
  11 => float 10.15
  12 => boolean true

var_dump output:

你可以注意到前 10 个元素是整数,第 10 个元素是字符串,第 11 个元素是浮点数,第 12 个元素是布尔值。

请任何人解释我为什么 PHP 有如此令人困惑的行为?

标签: php

解决方案


PHP 是一种具有动态类型系统的语言。像 Python、Javascript 等大多数动态语言一样,Ruby 默认不检查任何类型。这实际上只是其他一切运作方式的紧急行为。


推荐阅读