PHP数组变量被赋值

时间:2012-04-04 12:57:36

标签: php codeigniter

我是PHP和Codeigniter的新手,所以我确定这很简单。

我有以这种格式存储的联系方式,其中type(1,2,3,4)映射到(facebook,mobile,bbm,msn,twitter):

ID | USERID | TYPE | VALUE
1  |    8   |  2   | 076773635

我已经设置了一个模型来访问这些联系人详细信息,可能没有,或者最好是每种类型之一;

function getContactDetails($userid) {
    $query = $this->db->query("SELECT * FROM who_user_contact_info WHERE userid=".$userid);

    foreach ($query->result() as $row)
    {
        switch ($row->type) {
            case 1:
                $contact['facebook'] = $row->value;  
            case 2:
                $contact['mobile'] = $row->value; 
            case 3:
                $contact['bbm'] = $row->value; 
            case 4:
                $contact['msn'] = $row->value;  
            case 5:
                $contact['twitter'] = $row->value; 
        }

    }


    return $contact;
}

我的控制器然后将此数据传递给我的视图;

<h3>Contact Info</h2>
<?php   
    echo "Facebook: ". $facebook ."<br />";
    echo "mobile:".  $mobile ." <br />";
    echo "bbm:".  $bbm ." <br />";
    echo "msn:".  $msn ." <br />";
    echo "Twitter:".  $twitter ." <br />";
?>

这似乎几乎可行,但肯定有一个错误,例如说类型3和5不存在,移动和Twitter不应该被分配任何东西!然而在我的输出中它给出了之前的值,例如bbm = mobile和twitter = msn。

当案例没有设置时,这些数组怎么可能存在?或者我的逻辑错了?

2 个答案:

答案 0 :(得分:7)

你不需要在每个案件下休息一下吗?

case 1:
$contact['facebook'] = $row->value;  
break;

答案 1 :(得分:0)

设置变量后,每种情况都需要break;