代码之家  ›  专栏  ›  技术社区  ›  Sasha

php-使用var作为索引时未定义的索引数组

php
  •  0
  • Sasha  · 技术社区  · 7 年前

    当我试图通过key访问数组值时,出现了一个奇怪的错误。

    这是我的阵列:

    array:4 [▼
      10 => "mr"
      20 => "ms"
      30 => "mrs"
      40 => "dr"
    ]
    

    当我试着

    echo $titles[$user->title]
    

    我得到了 未定义索引 错误,,( $user->标题 可以有数组键中的4个值之一)

    当我举个例子

    echo $titles[10]
    

    我得到了 先生 。当我回响 $user->标题 我得到了 . 有人知道这里发生了什么吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   num8er    7 年前

    因为这样的测试返回了正确的值:

    $titles = [
      10 => "mr",
      20 => "ms",
      30 => "mrs",
      40 => "dr"
    ];
    
    echo $titles[10];
    echo "\n";
    echo $titles['10'];
    echo "\n";
    

    我只能猜测你在 title 属性。

    fix只是将其转换为整数的类型转换:

    echo $titles[(int)$user->title]