我有一个从类中返回的数组。它包含我在我的应用程序的控制器中需要的数据。然而,一些奇怪的事情正在发生有些值是我通过未定义的键得到的。但是当我打印整个数组时,它们就被定义了。但那还不是全部。有些键会返回它们的值,有些则没有。
为了测试是否可以找到密钥,我使用array_key_exists()
,返回true。让我们来看看这个例子吧。当我打印$this->case->data
时,它将返回以下内容;
[id] => 1
[ticket_number] => 2334
[user_id] => 2
[ticket_state] => 1
哪个好。为了测试这一点,我尝试返回ticket_number值。 ($this->case->data['ticket_number']
)。它运作良好,并返回它的价值。但是当我尝试返回ticket_state($this->case->data['ticket_state']
)时,我得到undefined
作为值。
可能是我在这里遗漏了一些东西。我究竟做错了什么?如果我做错了怎么可能ticket_number
有效,但ticket_state
没有?
修改
我确实在返回值时未定义。不是未定义的索引错误。我对变量做了一个var_dump()。
array(4) { ["id"]=> string(1) "1" ["ticket_number"]=> string(14) "2334" ["user_id"]=> string(1) "2" ["ticket_state"]=> string(1) "1" }
编辑II:
我尝试接收值的代码是以下简单的if语句;
if($this->case->data['ticket_state'] == 2){
$this->case->reopen();
}
我尝试在引号中添加2
,但由于$this->case->data['ticket_state']
未定义,因此无论如何都将执行该语句。 (我发现也很奇怪。当undefined与2或'2'不同时,为什么还要执行?)。
我的列ticket_state的当前值为1
。