Page 1 sur 1

un if dans un if...Comment faire

Posté : 27 juin 2013, 17:54
par Do_While
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."

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

Posté : 27 juin 2013, 17:54
par Do_While
$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

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

Posté : 27 juin 2013, 19:25
par moogli
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

Posté : 27 juin 2013, 19:34
par moogli
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

Posté : 27 juin 2013, 23:29
par Do_While
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

Posté : 28 juin 2013, 19:44
par moogli
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

Posté : 28 juin 2013, 20:05
par sirakawa
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

Posté : 28 juin 2013, 22:13
par orenx22
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

Posté : 01 juil. 2013, 02:52
par orenx22
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

Posté : 01 juil. 2013, 12:12
par Do_While
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.