发布于 1970-01-01 08:00
  • 1 个回答
    • 经验问题。单独来说if(!is_array)这段吧,这可能来自以下需求:
      咱们啊有个数,然后想和另一个比较,另一个是什么呢,可以随便输入,但是肯定是大于5,小于7,大约等于8,小于等于10这种,你给做一下吧。
      然后你就这么做了,没有错。
      因为不懂开发的人会实事求是的描述他的需求,但是我认为开发人员应该有自己的理解,比如我会抽象为:
      将数字A与期望的表达式B比对,并得到结果;其中,表达式B包含操作符与操作数两部分。即,表达式B应该符合正则表达式 /^([^\d]+)(\d+)$/;其中$1是操作符,$2是操作数。且,操作符必须是 <,<=,>,>=之一。
      这样,代码将类似

      //$a 操作数A, $b, 表达式B,$c, 操作符, $n2 第二个操作数
      if (! preg_match('/^\d+$/', $a)) {
          die('a无效');
      }
      if (! preg_match('/^([^\d]+)(\d+)$/', $b, $_match)) {
          die("格式错误");
      }
      $c = $_match[1][0];
      $n2 = $_match[1][1];
      $useableC = array('<', '<=', '>', '>=');
      if (! in_array($c, $useableC)) {
          die('无效的操作符');
      }
      eval("\$t = $a $c $n2");
      if ($t) echo 'Y';
      echo echo 'N';

      很明显,这样你可以很容易的扩展到更多的操作符,以后想增加==,!=很方便。
      以上是伪码,不建议使用正则表达式作为数字有效性验证的最终标准

      写作能力很差,不知道你能明白我想表达的意思不,希望有帮助。

      2022-11-30 19:43 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有