どもです。
条件によって条件式が変わるが、trueのときに通る処理は同じものとしたい。
無名関数を使えばできるのかな?
と思ったが、できなかった。
//失敗例
if(function(){
if(条件1){
return 条件1のとき使用したい条件式
}else{
return 条件1でないとき使用したい条件式
}
}){
条件式がtrueのときに行いたい処理
}
// -> ifに与えられる値は真偽でなくこの関数そのもののオブジェクトになる
仕方ないのでこの辺で妥協。
if(条件1){
$f = 条件1のとき使用したい条件式
}else{
$f = 条件1でないとき使用したい条件式
}
if($f){
条件式がtrueのときに行いたい処理
}
通常の関数なら返り値は真偽になるのでif(関数)は普通に可能だけど、可読性のために本体処理から引き離したくなくて、なんとかifの中にifやswitchを入れる方法がないかな?と探してみたけど無さそうだったという話。
うーん、絶妙に痒い。