2013-04-11 3 views
0

У меня есть система сигнализации, которую я хочу запустить, но в зависимости от статистики она должна сигнализировать о большем или меньшем, чем стат за это время на прошлой неделе. Утверждение If просто:PHP - Могу ли я использовать функцию для уравнения в этой инструкции if?

if ((($past/100) * 75) > $present) 

Но при определенных условиях мне нужно перевернуть большую часть на лес. Является ли функция лучшим способом для этого? Я не могу понять, как они работают в этом отношении. Примером может быть хорошо, все, что я могу найти те общие функции печати и т.д.

+0

Какие условия? – Vucko

+2

Я думаю, что ваш оператор if может быть записан как 'if ( (! $ Defin_condition && ($ past/100 * 75)> $ present) || ($ defin_condition && ($ past/100 * 75) <$ present) ), учитывая, что результат определенных условий может быть сохранен в переменной '$ defin_condition' – Ejaz

+0

@Ejay, который очень изящный, заслуживает ответа, а не комментария –

ответ

2

Я думаю, что ваш, если можно записать в виде

if ( 
    (!$certain_condition && ($past/100 * 75) > $present) 
    || ($certain_condition && ($past/100 * 75) < $present) 
) 

, учитывая, что в результате определенных условий может храниться в переменной, $certain_condition

+0

Спасибо, Ejay, это был самый элегантный способ сделать что-то далеко. Но спасибо всем за другие ответы тоже, я действительно крутил свой мозг, и объяснения действительно помогли. – Soop

2
function compare($a,$b,$operator) 
{ 
if($operator==">") 
    { 
    return ($a>$b); 
    } 
else if($operator=="<") 
    { 
    return ($a<$b); 
    } 
} 

Чтобы проверить, если его Greater

if (compare(($past/100) * 75),$present,">") 
{ 

} 

Чтобы проверить, если его Меньшие

if (compare(($past/100) * 75),$present,"<") 
{ 

} 
+0

функция мне кажется «overkill»? – bestprogrammerintheworld

+0

Может быть, но это то, что они задали для PHP. Могу ли я использовать функцию для уравнения в этом операторе if? –

+0

nae ... «Является ли функция лучшим способом для этого?» - спросил он. – bestprogrammerintheworld

0

Положите его в функции и кормить его направление вы хотите его взять.

function comparison($past, $present, $gt = true){ 

if($gt){ 
    return ((($past/100) * 75) > $present) ? true : false; 
}else{ 
    return ((($past/100) * 75) < $present) ? true : false; 
} 

} 

// debug 
// var_dump(comparison($past, $present, true)); 

Используйте его так: оно возвращает true или false.

$past = 100; 
$present = 80; 

// usage eg 
if(comparison($past, $present)){ 
// start running some other process in gt> mode 

} 
Смежные вопросы