当作为数组键放置时,为什么一串数字变为字符串?

时间:2012-03-17 02:33:20

标签: php arrays

    $ar['123'] = "test";
    var_dump($ar); // Key is int
    $ar2['123a'] = "test";
    var_dump($ar2); //Key is string

为什么会这样?有工作吗?我希望将数字键作为字符串而不是整数。

日Thnx

4 个答案:

答案 0 :(得分:0)

您可以在需要时使用“123”作为数字。你也可以将“123”字符串或strlen作为字符串。 php变量很灵活。

答案 1 :(得分:0)

您不必担心PHP中的数据类型,转换会自动为您完成。

举一个例子,以下代码:

<?php
        if("10" == 10)
        {
                echo "It's equal!";
        }
?>

实际输出:

  

它是平等的!

您可以在此处看到它:http://ideone.com/aayLx

底线是:不用担心,PHP会在需要时将其视为字符串。

答案 2 :(得分:0)

您可以将键转换为字符串,但由于PHP的松散输入,它最终会转换为整数。从手册http://php.net/manual/en/language.types.array.php

  

键可以是整数或字符串。如果一把钥匙是标准   表示整数,它将被解释为这样(即“8”   将被解释为8,而“08”将被解释为“08”。

答案 3 :(得分:0)

当字符串是整数时,字符串会自动转换为整数。有关详细信息,请参阅http://php.net/manual/en/language.types.array.php

要解决此问题,必须在整数前加上0:

$ar2["0123"] will use '123' as the key