Не уверен, что это то, что вы хотите, но вы можете поставить if
в функции:
<?php
set_time_limit(0);
function a($a,$b,$c,$d){
if($a >= 12 && time() <= $b && ($d === false || $d <= time()))
{
include 'pages/'.$a.'.php';
}
}
function b($a,$b,$c,$d){
if($b <= 3 && time() >= $d && ($c === false || $c <= time()))
{
include 'pages/'.$b.'.php';
}
}
// etc
while(1==1)
{
$a = getFromDatabase('a'); // function to get value of A
$b = getFromDatabase('b'); // function to get value of B
$c = getFromDatabase('c'); // function to get value of C
$d = getFromDatabase('d'); // function to get value of D
$order = array('b','a'); // first b then a
foreach( $order as $fun)
call_user_func_array($fun, array($a,$b,$c,$d))
}