PHP:定义的数组值未定义

时间:2018-03-21 12:13:55

标签: php

我有一个从类中返回的数组。它包含我在我的应用程序的控制器中需要的数据。然而,一些奇怪的事情正在发生有些值是我通过未定义的键得到的。但是当我打印整个数组时,它们就被定义了。但那还不是全部。有些键会返回它们的值,有些则没有。

为了测试是否可以找到密钥,我使用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

0 个答案:

没有答案