php不判断比较大小,php 判断数学里面的大小关系比较是否正确

现有字符串 0<99<100 或者 100>88

请教各位前辈,我如何在PHP里判断这写数学意义上的公式是否合理??

回复讨论(解决方案)

测试下不就知道了

$str='100>88';eval("\$a=".$str.";");var_dump($a);

0<99<100不行,因为不符合php语言写法$a=0<99<100;这样肯定报错

$str='100>88';eval("\$a=".$str.";");var_dump($a);

0<99<100不行,因为不符合php语言写法$a=0<99<100;这样肯定报错

答案是我要的,谢谢。

忘记排版了,不知道有没有更简单的了=-]+$/', $str, $matches)){return false;}//按照, <=, >=进行切割$left = '';$right = '';$opt = '';while($str){if(!$left){//获取算术式左边值preg_match('/^[0-9.+*\/%-]+/', $str, $matches);if(!is_array($matches) || !isset($matches[0])){return false;}$left = $matches[0];$str = substr($str, strlen($left));}//获取算术式操作符preg_match('/^[<>]=?/', $str, $matches);if(!is_array($matches) || !isset($matches[0])){return false;}$opt = $matches[0];$str = substr($str, strlen($opt));//获取算术式右边值preg_match('/^[0-9.+*\/%-]+/', $str, $matches);if(!is_array($matches) || !isset($matches[0])){return false;}$right = $matches[0];$str = substr($str, strlen($right));//算术式比较eval('$result = ' . $left . $opt . $right . ';');if(false === $result){return false;}//将右边值赋值给下一次比较的左边值$left = $right;}return true;}//举例var_dump(check('0<99<100')); //truevar_dump(check('100 > 88')); //truevar_dump(check('10 < 22 < 3*8 < 5.6*5 < 100 - 30')); //truevar_dump( check('10 < 9.9999')); //falsevar_dump(check('10 > 9 + 0.9999')); //truevar_dump(check('9 % 7 <= 2 <= 2')); //truevar_dump(check('1 > 1')); //falsevar_dump(check('23<32<77')); //truevar_dump(check('1 <= 1 <= 1')); //truevar_dump(check('1 <= 1 < 1')); //falsevar_dump(check('2 < 2.00000')); //false

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值