2011-12-29 98 views
-3

可能重复:
Build condition comparison for if statement将字符串转换成字符 '<' 来比较字符<

有没有一种方法来转换 '<'(串字符)到<(比较字符)?


编辑:
我知道实现相同的结果的另一种方式,但它是长一点,想知道这是否快捷方式将正常工作。
基本上,比较字符是从数据库中检索的(它可能是<,>或=)作为字符串,它应该比较2个数字。我明白我可以编写几个检查角色是什么的场景,但我仍然想要在开始较长的路线之前检查该字符串字符是否可以转换为其对比值。

+0

为了什么目的呢?你的问题,因为它没有提供足够的信息。 – 2011-12-29 17:20:44

+0

为了什么目的?简短的答案是否定的,但可能有更好的方法来实现您的预​​期目标。 – cmbuckley 2011-12-29 17:20:57

+0

*(小费)* https://www.youtube.com/watch?v=4F72VULWFvc – Gordon 2011-12-29 17:25:32

回答

0

简短的回答是否定的。

然而,看看version_compare,因为它可能会做你本来的东西(取决于你想要达到的目标)。

如果没有,你可以做到以下几点:

function compare($string1, $string2, $operator) { 
    $cmp = strnatcmp($string1, $string2); 

    switch($operator) { 
     case '>': return ($cmp > 0); 
     case '>=': return ($cmp >= 0); 
     case '<': return ($cmp < 0); 
     case '<=': return ($cmp <= 0); 
     // expand as necessary 
    } 
} 
0

的eval()函数可以评估一个字符串作为PHP代码。例如:

eval('echo 2 < 3'); 

将打印1.

+0

编辑问题后,这似乎是一个相当危险的选择。如果比较操作从数据库中检索(未检查),那么'eval'可以基本上执行任意的php代码,无论(数据库中)是什么(苹果)。 – 2011-12-29 17:33:58

+1

'eval'是'evil'的拼写错误 – Kumar 2011-12-29 17:34:10

+0

在执行eval()之前,只需检查从数据库中检索的内容是否符合您的期望。 eval()只有在不正确和不安全的情况下才是邪恶的。 – VettelS 2011-12-29 17:39:07

相关问题