私はこれについて簡単に検索しましたが、私の問題に関連するものは何も見つかりませんでした。foreachループ内のifステートメントに問題があります。あるクラスからカテゴリのリストを取得し、別のクラスから1つのカテゴリを選択します。以下のコード(ifステートメントを削除したもの)は完全に機能し、値が入力された12個のオプションを返します。
foreach ($user_info->categories as $key=>$category) {
$category_name = $user_info->category_names[$key];
echo '<option value="'.$category.'">'.$category_name.'</option>';
}
ただし、以下のようにifステートメントを内部に追加すると:
foreach ($user_info->categories as $key=>$category) {
$category_name = $user_info->category_names[$key];
if ($category = $get_article_info->category_1) {
echo '<option value="'.$category.'" selected="selected">'.$category_name.'</option>';
} else {
echo '<option value="'.$category.'">'.$category_name.'</option>';
}
}
テキストが入力されたオプションのリストが表示されますが、12個のオプションすべてにvalue=""があります。$ get_article_info-> category_1は、それ自体でエコーされたときに機能します。見つからなかった場合でも、ifステートメントは選択されていない12個のオプションをエコーすることを期待します(最初のコード例と同じ)。