zoukankan      html  css  js  c++  java
  • PHP const问题

    发现一个const使用的问题,场景是这样的,外包公司,之前给建行开发一个对外的sdk,在对接过程中,SDK出现各种各样的问题,这里主要介绍常量配置方面的

    1.框架的冲突

    define定义常量,会和框架中使用的同名常量存在冲突,因为框架中首先会使用define定义,造成加载到SDK时,会报重复定义,使用了const定义解决了此问题,因为define定义不会考虑命名空间,const会,define是全局定义,而const在定义时就带上了当前命名空间

    2.版本出现的

    const在php5.3时提供了支持,在SDK修改成const没有做多版本测试,后面对接就出现了问题,在一个公司使用php5.4版本,总是报语法错了,这真的很头大,因为仔细检查了很多遍,例如这样:

    const CONF_PATH=__DIR__.DIRECTORY_SEPARATOR;

    可以确定的是语法肯定是不存在错误的,然后对接方说对接其他的SDK中也使用了const定义常量,那更确定了const可以在此版本的使用。

    既然不是const的报错,又报语法错误,语法错误出现在__DIR__后面这个“.”,报错说,在“.”希望出现一个“,”或者“;”。

    然后我就想是否不支持拼接语法,因为const在官方文档中的描述是定义后不可修改,那在5.4的版本中是否认定,在__DIR__后就已经是常量定义完成了,后面的拼接就算是修改了,然后和对接方做了一个测试,事实就是这样。

    吸取教训,后面还是要做多个版本的测试,这样才能去确保万无一失。

    当你发现自己的才华撑不起野心时,就请安静下来学习吧
  • 相关阅读:
    设计模式之简单工厂模式
    设计模式之工厂方法模式
    设计模式之抽象工厂模式
    面向对象设计原则
    Spring与Struts整合
    Spring与Hibernate、Mybatis整合
    Java中执行外部命令
    Spring3之Security
    综合练习:词频统计
    组合数据类型综合练习
  • 原文地址:https://www.cnblogs.com/wang1204/p/14984769.html
Copyright © 2011-2022 走看看