2013-02-20 54 views
0

我可以走出這個。正常的語法似乎工作,否則替代語法似乎不按預期工作。PHP的替代語法和字符串/數字比較

<?php 
$num = "abcdefghi"; 

function checkNum($n) { 

    if(!is_numeric($n)) 
    { 
     return "not numeric"; 
    } else 
    { 
     if($n<0) 
     { 
      return "less than zero"; 
     } else 
     { 
      return "greater then or equal to zero"; 
     } 
    } 
} 

echo checkNum($num); # echoes "not numeric"; 

function checkNum2($n) 
{ 
    $r = !is_numeric($n) ? "not numeric" : $n<0 ? "less than zero" : "greater then or equal to zero"; 
    return $r; 
} 

echo checkNum2($num); # echoes "less than zero" 
?> 

那麼問題是什麼?

提前謝謝。

+0

僅僅因爲一個字符串包含一個數值,你可能想要明確地投它,否則浮動將被視爲一個整數在隨後的比較中 – 2013-02-20 09:25:47

回答

0

使用這個,你剛剛在你的函數中錯過了()

function checkNum2($n) 
{ 
    $r = !is_numeric($n) ? "not numeric" : ($n<0 ? "less than zero" : "greater then or equal to zero"); 
    return $r; 
} 

echo checkNum2($num); # echoes "not numeric"; 

工作示例http://codepad.viper-7.com/DVvQaC

+1

該死! ......括號...... :-) Thankyou! – Nineoclick 2013-02-20 09:42:29

+0

@Nineoclick歡迎。 :) – 2013-02-20 09:44:22

+0

@Nineoclick標記答案是正確的,如果它解決了你的問題是好習慣。 :) – 2013-02-20 09:47:29

0

試試這個:

$r = (!is_numeric($n)) ? "not numeric" : (($n<0) ? "less than zero" : "greater then or equal to zero");