詳細なしでより良い回答を提供することは困難ですが、これが役立つ場合があります。以下は、各チェックボックスがチェックされていない場合、またはそのチェックボックスに関連付けられたロジックが true を返した場合に、if ステートメントが続行されることを前提としています。
各関数を配列に格納し、見ているフィールドの名前に基づいて動的に呼び出す傾向があります。
<?php
$resultCheckers = array(
'is_Online' => function() { /* Is Online logic here */},
'have_Comments' => function() { /* Have Comments logic here */}
);
function IsUncheckedOrHasValue($parameter)
{
$result = true;
//Check if user has checked the box for this parameter
if(array_key_exists($parameter, $_POST))
{
//Check if this is a valid key in your $resultCheckers
if(array_key_exists($parameter, $resultCheckers))
{
//Run the result Checker
$result = $resultCheckers[$parameter]();
} else {
$result = false;
}
}
return $result;
}
?>
if ステートメントは次のようになります。
if(IsUncheckedOrHasValue('is_Online') && IsUncheckedOrHasValue('have_Comments'))
{
...
}
これは読むのが少し面倒なので、必要に応じて、次のように独自の関数にさらに抽象化できます。
function IsMatch()
{
$isMatch = IsUncheckedOrHasValue('is_Online') &&
IsUncheckedOrHasValue('have_Comments') &&
IsUncheckedOrHasValue(...) &&
IsUncheckedOrHasValue(...);
return $isMatch;
}
したがって、ifステートメントは最終的に
if(IsMatch())
{
...
}
注:結果に関する情報をチェック関数に渡していないことに少し混乱しています。あなたはそれをオブジェクト指向で書いていて、その情報は現在のオブジェクトで利用できますか? または、簡潔にするためにこれらの余分なパラメーターを省略しただけかもしれません。いずれにせよ、これがお役に立てば幸いです。また、PHP からしばらく離れてから PHP に戻るのは楽しかったです :)