在其他编程语言中,数组的定义是可以包含类似元素的东西。例如,如果我声明类似int i[]
它将存储整数的东西,但在 PHP 中,单个数组似乎将字符串和数字保存在一起。
在 PHP 的这种类型的数组中,数字/整数会被视为字符串吗?
根据 PHP 手册,您确实可以在 PHP“数组”中存储异构类型 - 向下滚动到示例 3。
请注意,尽管示例中的键是整数或字符串,但示例中分配的值也是整数和字符串,这表明可以存储异构类型。
请注意,在不同类型的键的情况下,涉及自动转换,因此在字符串包含有效十进制表示的情况下,您可能会得到令人惊讶的结果。
在 PHP 中,数组甚至不是数组,它们是有序的哈希表。
是的。PHP 数组中可以有多种数据类型。此外,您应该注意 PHP 中的数组实际上是以键值对的形式表示的,其中您将输入到数组中的元素是值。您也可以在向数组中输入元素时显式定义键,但如果您不这样做,PHP 将使用从 0 开始的索引。示例:
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
100 => -100,
-100 => 100,
);
var_dump($array);
?>
PHP 将解释为
array(4) {
["foo"]=>
string(3) "bar"
["bar"]=>
string(3) "foo"
[100]=>
int(-100)
[-100]=>
int(100)
}
不会给 PHP 火上浇油 数组在这里没有数组……但是是的,您可以将不同的变量类型(字符串,int,……)放在一个称为 Array 的 PHP 事物中。
你可以在数组中存储任何你想要的东西。
在 PHP 的这种类型的数组中,数字/整数会被视为字符串吗?
不是在存储时。但是,当您使用这样的值时,PHP会转换它。值的使用决定了它的解释。(注意,密钥在存储时转换,但是,如果它被认为是数字)