찾다

 >  Q&A  >  본문

为何某些php框架定义了诸如FOPEN_READ FOPEN_READ_WRITE 这些常量

,然后在文件函数中调用。直接写w,w+不是挺简洁的吗,为什么还要绕圈子呢?
有些框架甚至还把一分钟有60秒的这个60也定义成常量,还有个长长的常量名。这种永远不会变的东西为何还要用常量呢?而且我觉得写成$t=3600*24这种形式可读性也不差啊

大家讲道理大家讲道理2773일 전820

모든 응답(3)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-11 09:46:29

    1 当前时间定义成常量是为了减少时间误差,一般在入口定义。因为存在业务逻辑 所以请求时间便不等于你数据入库时间。 打个比方 用户点击提交答案 这个时候你的业务逻辑是 执行1亿次循环 然后写入数据库。那么你数据库记录的操作时间和真正用户的操作时间是有差值的。

    2 防止time()多次使用导致时间差

    3 有很大程度是存属装逼,人云亦云,有第一个框架这样写,新的框架开发前肯定会参考别人的 ,也就同样的写。

    好比一个判断语句

    if($a>1){
    $a=1;
    }

    有的人这样写

    if($a>1) $a=1;

    有的人这样写

    $a>1 and  $a=1;

    还有的这样写

    $a>1 && $a=1;

    只要你都能看得懂就行,用自己习惯的一种就可以了。

    회신하다
    0
  • 阿神

    阿神2017-04-11 09:46:29

    谢邀

    • 变量全名是为了增加可读性,举例thinkphp5以前的时代单字母函数一直被诟病就是没有可读性无法一看到就理解

    • 常量一般都定义在一个文件或同一个位置方便维护

    • 可被多个地方重复调用,一旦有修改只要改一处

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-11 09:46:29

    因为这个值肯定是被整个项目调用了很多次,如果不配置成常量,一旦要修改此值,那么很有可能会漏掉的。

    회신하다
    0
  • 취소회신하다