开发者社区> 问答> 正文

关于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 1967 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 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载