0

私はこれについて簡単に検索しましたが、私の問題に関連するものは何も見つかりませんでした。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個のオプションをエコーすることを期待します(最初のコード例と同じ)。

4

1 に答える 1

4

=代わりに使用してい== ます変更する必要があります

 if ($category = $get_article_info->category_1) {

  if ($category == $get_article_info->category_1) {
于 2012-09-23T19:50:16.690 に答える