ど素人から毛を生やす。<延>

条件によって条件式を変えたかった話。

Web > PHP 2020年12月24日(最終更新:4月前)

どもです。

条件によって条件式が変わるが、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を入れる方法がないかな?と探してみたけど無さそうだったという話。

うーん、絶妙に痒い。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)