[PHP] Deux situations qui me pose problème

Boujour, donc voilà j'ai deux problème concernant un code php.
Le premier:
Puis je utiliser cette syntaxe:

if ($variable_1 == 3 AND ($valeur_2 == 2 OR $valeur_2 == 8))
{
instruction A
}

Oui suis je obligé de me répéter:

if ($variable_1 == 3 AND $valeur_2 == 2)
{
instruction A
}

elseif ($variable_1 == 3 AND $valeur_2 == 8)
{
instruction A
}

?

Deuxième question:

$colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
$valeur_case[0] = 1;
$valeur_case[3] = 1;

$numero_case_vide = array_search(NULL, $colonne_1);
$colonne_1[$numero_case_vide] = 2;

Avec ce code, j'obtiens $colonne_1[2] = 2
Mais est ce que la variable $valeur_case[6] vaut 2 ? ><

Merci d'avance pour vos réponses. :)
Configuration: Windows XP
Firefox 2.0.0.11

22 réponses

  1. Bonjour,

    1) la première syntaxe est bonne, pas besoin de te répéter heureusement, ça compliquerait bien les programmes...! Au passage tu peux aussi écrire "&&" à la place de AND et "||" à la place de "OR"

    2) pourquoi tu l'affiche pas $valeur_case[6] pour voir!??
    => print_r($tab); affiche le tableau pour info.
    1. premier:
      <?php
      if ($variable_1 == 3 && ($valeur_2 == 2 || $valeur_2 == 8))
      {
      instruction A
      }
      ?>
      second:
      tu n'as affecté aucune valeur à $valeur_case[6].Comment veut tu kil te rende quelque choz??
      1. Il a utilisé array_search()..., puis il attribue une valeur aux valeurs NULL du tableau. Y'a une logique dans son raisonnement.

        Enfin on apprend bcp par soit-même et il n'a pas besoin d'aide pour voir s'il y a qqch dans sa variable.
    2. Merci Pi_Xi pour tes réponses.
      J'ai pas le moyen de vérifier là c'est pour ça, je le ferai ce soir.
      Bonne journée, et à plus tard peut être. ^^'
      1. En fait tu verras que par défaut, les valeurs d'un tableau ne sont pas 'NULL'
        1. Si un peu plus haut dans le code j'ai la ligne suivante:

          $valeur_case = array (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

          La valeur de $valeur_case[6] est bien égale à NULL non?

          $colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
          $valeur_case[0] = 1;
          $valeur_case[3] = 1;

          $valeur_case[6] = NULL ?
          1. ah ben si tu nous dit pas tout, on peut pas te répondre hein...!

            Au début, tu attribue donc à $valeur_case[6] la valeur "NULL" ; mais ensuite, tu écrase $valeur_case[6] avec la valeur '2'. Ca ne veux pas dire que tu attribue la valeur '2' à $valeur_case[6], tu n'y a pas touché à cette variable.
            1. Merci pour le lien, je bosse déjà avec ce tuto. :)

              C'est donc ça. La variable $valeur_case[6] disparait et j'ai :

              $colonne_1 = array($valeur_case[0], $valeur_case[3], 2)

              Bon au moins je sais pourquoi ca marche pas. :D
              Encore merci.
              1. J'ai trouvé une solution:

                $colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
                // en gros j'ai 2 case qui ont une valeur et la dernière vaut toujours NULL

                $numero_case_vide = array_search(NULL, $colonne_1);
                if($numero_case_vide == 0)
                {
                $valeur_case[0] = 4;
                }

                elseif $numero_case_vide == 1)
                {
                $valeur_case[3] = 4;
                }

                else // $numero_case_vide == 2
                {
                $valeur_case[6] = 4;
                }

                Mais ca fait sacrément plus long qu'avant. Et je vais devoir répéter l'opération pour colonne_2, colonne_3, ligne_1, 2 et 3, et diagonale_1 et 2.

                Penses tu qu'il y aurait un autre moyen de procéder?
                1. ah je savais pas que tu cherchais une solution, mdr

                  C'est quoi le problème? Tu veux faire quoi?

                  Faut arrêter la beuh hein ;o)
                  1. Je fume pas, ça liquéfie le cerveau.
                    Oui je cherchais une solution. Je l'ai trouvé mais elle va me ralonger beaucoup le code.
                    Mais bon. J'suis plus à une centaine de ligne près. :fou:
                    1. if($numero_case_vide == 0)
                      {
                      $valeur_case[0] = 4;
                      }
                      
                      elseif $numero_case_vide == 1)
                      {
                      $valeur_case[3] = 4;
                      }
                      
                      else // $numero_case_vide == 2
                      {
                      $valeur_case[6] = 4;
                      } 
                      équivaut à:
                      for(i=0;i<3;i++){
                      
                        if($numero_case_vide == i)
                        {
                          $valeur_case[i*3] = 4;
                        }
                      
                      }
                      1. Et sinon, ca corresponds à quoi i ? C'est une variable? Pourquoi ya pas le $ devant? n_n
                        1. lol...

                          Y'a pas le "$" parce que g écrit ça dans le speed et j'ai tappé le "for" comme en C, dsl.

                          Je te rassure, c'est pas le nombre imaginaire i² = -1 ;oP

                          Les boucles ça fait partie des bases, ça s'apprend très vite et c'est fort utile!
                          1. Essaye le Master Mind ;o)

                            Un exo qui m'avait bcp amusée, c'est de programmer un générateur de carrés magiques ^^ mais on pas pas jouer avec :o(

                            Y'a le sudoku aussi, c'est à la mode.
                            • 1
                            • 2