2013-04-11 70 views
0

我有我想要運行的報警系統,但根據統計,它需要報警大於或小於統計上週這個時候。 if語句很簡單:PHP - 我可以使用這個if語句中的方程的函數嗎?

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

但是我需要在特定的條件下將greaterthan翻轉爲lesssthan。功能是做這件事的最好方法嗎?在這方面,我無法理解他們的工作方式。一個例子是很好的,所有我能找到的是通用的打印功能等

+0

什麼樣的條件? – Vucko 2013-04-11 08:36:24

+2

我認爲你的if語句可以寫成if( (!$ certain_condition &&($ past/100 * 75)> $ present) ||($ certain_condition &&($ past/100 * 75)<$ present) )'因爲_certainies_的結果可以存儲在一個變量中,'$ certain_condition' – Ejaz 2013-04-11 08:38:31

+0

@Ejay非常優雅,值得成爲答案,而不是評論 – 2013-04-11 08:41:32

回答

2

我覺得你如果聲明可寫爲

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

考慮到的一定條件下結果可以被存儲在一個變量,$certain_condition

+0

謝謝Ejay,這是迄今爲止最優雅的做事方式。但是,也要感謝所有人的其他答案,我真的在扭動我的大腦,而這些解釋真的有幫助。 – Soop 2013-04-11 09:00:59

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

要檢查其大

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

} 

要檢查其較小的

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

} 
+0

功能我看來,像「矯枉過正」? – bestprogrammerintheworld 2013-04-11 08:41:46

+0

可能,但這就是他們所要求的'PHP - 我可以在這個if語句中使用函數作爲方程嗎?' – 2013-04-11 08:42:24

+0

nae ...「是一個函數最好的辦法嗎?被問。 – bestprogrammerintheworld 2013-04-11 08:43:15

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 

} 
相關問題