15

在其他编程语言中,数组的定义是可以包含类似元素的东西。例如,如果我声明类似int i[]它将存储整数的东西,但在 PHP 中,单个数组似乎将字符串和数字保存在一起。

在 PHP 的这种类型的数组中,数字/整数会被视为字符串吗?

4

5 回答 5

11

根据 PHP 手册,您确实可以在 PHP“数组”中存储异构类型 - 向下滚动到示例 3。

请注意,尽管示例中的键是整数或字符串,但示例中分配的值也是整数和字符串,这表明可以存储异构类型。

请注意,在不同类型的键的情况下,涉及自动转换,因此在字符串包含有效十进制表示的情况下,您可能会得到令人惊讶的结果。

于 2012-09-20T08:24:25.520 回答
2

在 PHP 中,数组甚至不是数组,它们是有序的哈希表。

于 2012-09-20T08:10:59.980 回答
2

是的。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)
}

参考- http://php.net/manual/en/language.types.array.php

于 2019-02-03T18:33:38.730 回答
1

不会给 PHP 火上浇油 数组在这里没有数组……但是是的,您可以将不同的变量类型(字符串,int,……)放在一个称为 Array 的 PHP 事物中。

于 2012-09-20T11:58:42.883 回答
0

你可以在数组中存储任何你想要的东西。

在 PHP 的这种类型的数组中,数字/整数会被视为字符串吗?

不是在存储时。但是,当您使用这样的值时,PHP转换它。值的使用决定了它的解释。(注意,密钥在存储时转换,但是,如果它被认为是数字)

于 2012-09-20T11:53:05.880 回答