Условие зависещо от друго условие

  • Автор Автор Hous
  • Начална дата Начална дата

Hous

Registered
Може ли да направя така:

Първото условие
Код:
if($myvar=="1"){$condition="this_is()";}
if($myvar=="2"){$condition="this_is2()";}
if($myvar=="3"){$condition="(this_is() || this_is2()) || is_not()";}
след което няколко реда по-надолу
Код:
if($condition){
//do this
}
където if($condition) съответно трябва да се разбира правилно от сървъра, тоест в случай че myvar=="1"
то долното условие трябва да е:
Код:
if(this_is()){
//do this
}
в случай, че myvar=="2"
то долното условие трябва да е
Код:
if(this_is2()){
//do this
}
и в случай, че myvar=="3"
то долното условие трябва да е
Код:
if((this_is() || this_is2() || is_not()){
//do this
}
пс:обикновено при задаване на подобно условие
if($cond) задавам на сървъра да провери дали тази променлива съществаува, но как да направя така че да прави моите проверки?

Идеята е да избегна повтарянето на един и същ код 3 пъти (//do this)
 
Да, можеш, но махни кавичките.
PHP:
if($myvar=="1"){$condition = this_is();}
if($myvar=="2"){$condition = this_is2();}
if($myvar=="3"){$condition = this_is() || this_is2()) || is_not();}

Даже, в този случай, можеш да го напишеш и така:

PHP:
$condition = $myvar == 1 ? this_is() :
             $myvar == 2 ? this_is2() :
             $myvar == 3 ? this_is() || this_is2() || is_not() :
             null;//в останалите случаи

Разбира се, въпрос на вкус :)
 
Дам, спестих си 3 пъти писане на един и същ код (и то доста дълъг)!
Благодаря!
+1
 
Ако имаш блок, който трябва да се изпълни, можеш да ползваш goto, за да препращаш към определен блок от действия, като естествено след това си ги дефинираш тези блокове.


PHP:
condition1: {
     // block
}

// а от условието правиш така

if ( ... ) {
    goto condition1;
}

По този начин можеш да си правиш блок в блока и да си се препращаш, както на теб ти е удобно.
 

Back
Горе