2 u013446836 u013446836 于 2014.11.21 23:48 提问

php中define带入表达式问题
php
define('GW_MAXFILESIZE', '32768*10');
echo GW_MAXFILESIZE/1;

为什么输出是32768而不是327680呢?
读书少……

一个猜想,php不像C是原样替换,先发生了类型转换,遇到「*」号就直接忽略后面的了。

若如此,那么
define('GW_MAXFILESIZE', '32768*10');
if(GW_MAXFILESIZE>0) {
//whatever
}

又如何处理常量呢?

谢谢

1个回答

xuzuning
xuzuning   Ds   Rxr 2014.11.22 10:00
已采纳

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

u013446836
u013446836 谢谢。。。
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!