关于php中define带入表达式问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于php中define带入表达式问题

define('GW_MAXFILESIZE', '32768*10');
echo GW_MAXFILESIZE/1;

为什么输出是32768而不是327680呢?
读书少……
一个猜想,php不像C是原样替换,先发生了类型转换,遇到「*」号就直接忽略后面的了。
若如此,那么

define('GW_MAXFILESIZE', '32768*10');
if(GW_MAXFILESIZE>0) {
//whatever 
}

又如何处理常量呢?
谢谢

展开
收起
小旋风柴进 2016-03-06 09:30:08 1729 0
1 条回答
写回答
取消 提交回答
  • 小旋风柴进
    define('GW_MAXFILESIZE', '32768*10');
    echo GW_MAXFILESIZE;
    输出 32768*10
    define('GW_MAXFILESIZE', 32768*10);
    echo GW_MAXFILESIZE;

    才会输出 327680
    字符串中的表达式是不会自行运算的

    C语言中也是一样

    #define MY "100*3"
    printf("%是",MY);
    输出 100*3
    #define MY 100*3
    printf("%d",MY);
    输出 300
    2019-07-17 18:54:00
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
相关产品:
问答排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现
立即下载
PHP与APM_技术内幕和最佳实践
立即下载