私はPHPとCodeigniterをかなり使い慣れています。PHP配列変数に値が割り当てられています
Iは、連絡先の詳細は、タイプがいずれかの(1,2,3,4)は、(Facebookの、モバイル、BBM、MSN、さえずり)にマッピングされ、この形式で保存されている:
ID | USERID | TYPE | VALUE
1 | 8 | 2 | 076773635
私が設定していますこれらの連絡先の詳細にアクセスするためのモデルは、各タイプのものがないか、最高でも1つではありません。
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です。
ケースが設定されていない場合、これらのアレイはどのように存在しますか?または私の論理が間違っていますか?
あなたの答えは、 'getContactDetails()'がこれを受け入れることを示唆しているので、あなたの答えは 'break;'回答のどれかですが、 'switch'(*とおそらく' foreach' *単一の '$ userid'です。 ** that **の場合、それぞれの 'case '自体が関数から戻るので、' break; 'は必要ありません。 – Dan