PHP - 当我使用var作为索引

时间:2018-05-31 08:45:58

标签: php

当我尝试通过密钥访问数组值时,我收到一个奇怪的错误。

这是我拥有的数组:

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

当我尝试

echo $titles[$user->title]

我收到未定义索引错误,( $ user-> title 可以包含数组键中的4个值之一)

当我尝试例如

echo $titles[10]

我正在先生。当我回复 $ user-> title 时,我得到 10 。 有谁知道这里发生了什么?

1 个答案:

答案 0 :(得分:3)

由于此类测试返回了正确的值:

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

echo $titles[10];
echo "\n";
echo $titles['10'];
echo "\n";

我只能猜测你在title属性中有空格或不可见的符号。

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

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