【问题标题】:Can PHP arrays hold items of different type?PHP数组可以保存不同类型的项目吗?
【发布时间】:2023-04-08 09:01:02
【问题描述】:

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

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

【问题讨论】:

标签: php arrays string types integer


【解决方案1】:

According to the PHP manual 您确实可以在 PHP“数组”中存储异构类型 - 向下滚动到示例 3。

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

请注意,在使用不同类型的键的情况下,会涉及自动转换,因此在例如字符串包含有效的十进制表示。

【讨论】:

  • 你是对的,但问题是关于存储不同类型的值,而不是键。不知道为什么这被否决了。
  • @phant0m - 我实际上完全错过了示例的标题,我正在查看该示例的右侧。回答清楚了,谢谢。
【解决方案2】:

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

【讨论】:

  • 有序哈希表是关联数组,所以 PHP 数组数组。不知道你心中对数组的定义是什么,但是数组只能容纳相同类型的项目的限制是语言限制,而不是概念限制。
  • @YannisRizos 我建议你阅读这篇文章,了解为什么人们不将 php 数组视为真正的数组technosophos.com/content/php-arrays-are-not-arrays 这不仅与类型有关,还与排序有关(在 PHP 中不存在)
  • 数组不是数据结构吗,所有的值都是相同大小的,并且在内存中一个接一个地排序?您所指的内容对我来说听起来像是字典/地图。我唯一知道的是,关联数组与真实数组的共同点是名称的一部分。
  • @da_b0uncer:这意味着当有人问 PHP 中的数组是什么时,我可以回答它们是有序的哈希表,不一定在其中存储相同类型的值,但可以包含不同类型的值?
  • 谁在乎?它甚至没有回答问题。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-24
        • 2017-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-02
        相关资源
        最近更新 更多