un if dans un if...Comment faire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : un if dans un if...Comment faire

Re: un if dans un if...Comment faire

par Do_While » 01 juil. 2013, 12:12

Bonjour,
Juste pour ce qui est de mon isset :
2ment
isset() rend faux sur une variable non définie.
Je sais que isset renvoi false sur une variable non définie, mais le 'undefined' testé ici, et une valeur que je donne quand la variable n'a pas une des valeurs autorisée.
Il est vrai que le choix de la valeur donné n'est peut être pas adéquat, mais je trouvais ceci plus clair que de mettre une valeur du type "pasBon" ou autre chose de ce genre.

Je te remercie également pour les petites règles de nommage et de codage, étant autodidacte à 100%, je n'ai pas les bonnes pratiques qu'il me faudrait, mais je tiens compte de toute remarques.

@orenx22 : Merci pour cette solution ;)

Je teste et vous dis ce qu'il en est.

Re: un if dans un if...Comment faire

par orenx22 » 01 juil. 2013, 02:52

Un autre exemple pour faire plus clair :
<?php

// remplacer les valeurs false par true de caca et pipi pour voir le déroulement de toto
// et donc du procédé du try / catch

$result = array();

$caca = true ;

$pipi = false ;

$result[] = "Toto rentre dans les toilettes." ;

try
{    
    if( $caca )
    {
        throw new Exception( "Toto fait caca." );
    }
    
    $result[] = "Toto siflotte l'air de rien." ;
    
    if( $pipi )
    {
        throw new Exception( "Toto fait pipi." );
    }
    
    $result[] = "Toto boit de l'eau du robinet." ;
}
catch( Exception $e )
{
    $result[] = $e-> getMessage();
    
    $result[] = "Toto cours se laver ses deux mains gauches." ;
}

$result[] = "Toto sort des toilettes." ;

echo implode( "<br>", $result );

?>
Je peux pas faire plus simple ><

Re: un if dans un if...Comment faire

par orenx22 » 28 juin 2013, 22:13

Bonjour à tous,

Il existe un possédé bien sympathique avec les conditions, les exceptions. An gros t'en qu'une exception n'est pas trouvé le code continu, dans la cas inverse on ignore tout le code jusqu'à la gestion de l'exception.

Exemple :

try
{
// du code ;

// si la condition_1 == true alors on va direct au catch ;
if( $condition_1 )  throw new Exception( "la condition 1 est vrai" );

// du code ;

// si la condition_2 == false alors on va direct au catch ;
if( !$condition_2 ) throw new Exception( "la condition 2 est fausse" );

// du code
}
catch( Exception $e )
{
die( $e-> getMessage() );
}
Ciao

Re: un if dans un if...Comment faire

par sirakawa » 28 juin 2013, 20:05

1stement:
Parenthéser les expressions booléennes ne mange pas de pain et est plus lisible
if ((isset ($variable1)) && ($variable1 != 'undefined')))
{
     $maVariable = (($k->menutype == 'selection A' ) && ($k->menutype == $results2[0]->menutype));
}
else
{
     $maVariable = $k->menutype == 'selection A';
}
2ment
isset() rend faux sur une variable non définie.
3 indenter son code le rend plus lisible

Re: un if dans un if...Comment faire

par moogli » 28 juin 2013, 19:44

poste le code que tu utilise ce sera plus simple.

indique nous ce qui ne va pas dans ce code :)



@+

Re: un if dans un if...Comment faire

par Do_While » 27 juin 2013, 23:29

Merci Moogli pour cette réponse, il est vrai que j'avais hésiter à placer le post dans php débutant au départ.. :)

Cependant, j'ai également, un erreur dans le code que j'ai copié, mon bloc d'instruction est celui ci :
if (isset ($variable1) && $variable1 != 'undefined')
{
$maVariable = "$k->menutype == 'selection A' && $k->menutype == $results2[0]->menutype";
}
else
{
$maVariable = "$k->menutype == 'selection A'";
}
et donc je souhaite utilisé le contenu de $maVariable c'est à dire :
$k->menutype == 'selection A' && $k->menutype == $results2[0]->menutype
ou
$k->menutype == 'selection A'

en l'utilisant dans un autre bloc if
if(str_replace(' " ', '', $maVariable) ){...}
mais je n'arrive pas a recuperer le contenu de $maVariable, pour qu'il puisse être utilisé dans le deuxième if

En espérant avoir été un peu plus clair.
:)

Re: un if dans un if...Comment faire

par moogli » 27 juin 2013, 19:34

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.

Re: un if dans un if...Comment faire

par moogli » 27 juin 2013, 19:25

oui mais non écrit les if correctement et se sera mieux.

parce que la tu mélange affectation et comparaison.

donc un == doit être remplacé par un if

tu peux écrire
if() {
if(){
// etc
}
else{
}
}
else{}

l’utilisation du ternaire doit rester exceptionnel car moins lisible :)


@+

Re: un if dans un if...Comment faire

par Do_While » 27 juin 2013, 17:54

$maVariable = (isset($variable1) && $variable1 != 'undefined') ? $k->menutype == 'selection A' && $k->menutype == $results2[0]->menutype : $k->menutype == 'selectionA';
ce qui revient à

if (isset ($variable1) && $variable1 != 'undefined')
{
$maVariable = $k->menutype == 'selection A' && $k->menutype == $results2[0]->menutype;
}
else
{
$maVariable = $k->menutype == 'selection A';
}


je sous par la suite utiliser le contenu de $maVariable , dans une autre condition du genre if( [contenu de $maVariable] )

mais j'ai eu beau essayé plein de chose, ça ne marche pas....

Merci à vous :D

un if dans un if...Comment faire

par Do_While » 27 juin 2013, 17:54

Bonjour à tous et à toutes!

J'aurais aimé effectué une boucle conditionnelle avec la condition changeante en fonction du contexte.

Je m'explique :

Si la réécriture d'URL est activé, ma condition est la condition 1, si la réécriture ne l'ai pas, ma condition est la condition 2.

Pour éviter de me réécrire les bloc d'instruction, j'aurais aimé pouvoir utiliser un if dans un if... mais celà n'a pas l'air de fonctionner :twisted:
J'essai en vain de mettre un bout de code, mais mon post est refusé à chaque fois "This message was flagged as spam and has been denied."