php - 为什么 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 是一种具有动态类型系统的语言。像 Python、Javascript 等大多数动态语言一样,Ruby 默认不检查任何类型。这实际上只是其他一切运作方式的紧急行为。
推荐阅读
- vba - 使用带有标题名称的自动过滤器从空白中清除数据的宏
- tags - R-Project 的函数 hclust() 中可能存在的错误
- graalvm - GraalVM:宿主环境不允许访问本机代码
- c++ - 我的循环没有完成,当文件到达文件末尾时如何关闭它
- javascript - 将 NaN 转换为数字
- python - 更改 matplotlib Qt GUI savefig 的默认名称
- image-processing - 从图像中提取文本以用于 pokemon go
- android - “在此处翻译但在默认语言环境中找不到”strings.xml 中的错误,translatable="false"
- tensorflow - 平铺实例规范化
- sql - 在同一列上多次应用 PIVOT 运算符