php中define带入表达式问题

问题描述

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
}

又如何处理常量呢?

谢谢

解决方案

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

时间: 2024-10-22 19:41:12

php中define带入表达式问题的相关文章

c++中#define 与const用法有什么区别? 如下的程序错在了什么地方?

问题描述 c++中#define 与const用法有什么区别? 如下的程序错在了什么地方? #include using namespace std; #define pi 3.1415; const float PI=3.14; int main() { system("color 4A"); float s1,s2,r; cin>>r; s1=PI*r*r; s2=pi*r*r; cout<<"s1="<<s1<<

PHP中的正规表达式(一)

PHP继承*NIX的一贯传统,完全支持正规表达式的处理.正规表达式提供了一种高级的,但不直观的字符串匹配和处理的方法.用过PERL的正规表达式的朋友都知道,正规表达式的功能非常强大,但学起来不是那么容易. 比如: ^.+@.+\..+$ 这段有效却难以理解的代码足够使一些程序员头痛(我就是)或者让他们放弃使用正规表达式.相信当你读完这个教程后,就可以理解这段代码的含义了. 基本模式匹配 一切从最基本的开始.模式,是正规表达式最基本的元素,它们是一组描述字符串特征的字符.模式可以很简单,由普通的字

PHP中的正规表达式

HuntePHP继承*NIX的一贯传统,完全支持正规表达式的处理.正规表达式提供了一种高级的,但不直观的字符串匹配和处理的方法.用过PERL的正规表达式的朋友都知道,正规表达式的功能非常强大,但学起来不是那么容易. 比如: ^.+@.+\\..+$ 这段有效却难以理解的代码足够使一些程序员头痛(我就是)或者让他们放弃使用正规表达式.相信当你读完这个教程后,就可以理解这段代码的含义了. 基本模式匹配 一切从最基本的开始.模式,是正规表达式最基本的元素,它们是一组描述字符串特征的字符.模式可以很简单

解读C#中的规则表达式

多少年来,许多的编程语言和工具都包含对规则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的Perl 5中的规则表达式兼容. 此外,regexp类还能够完成一些其他的功能,例如从右至左的结合模式和表达式的编辑等. 在这篇文章中,我将简要地介绍System.Text.RegularExpression中的类和方法.一些字符串匹配和替换的例子以及组结构的详细情况,最后,还会介绍一些你可能会用到的常见的表达式. 应该掌握的基础知识 规则表达式

js文件中写el表达式取不到值的原因及解决方法

 在js文件中写el表达式取不到值,百度一下,将经验总结如下,有类似情况的朋友可以参考下 今天在js文件中,写el表达式取不到值(代码如下),百度一翻,现总结如下:    1.javascript是客户端执行,EL是在服务端执行,而服务端比客户端先执行,所以取不到值    2.要想获取"${isLogin}"的值,可以在jsp中,用一个全局变量接收,然后再js中使用    3.注意:在使用时,注意要添加双引号,如var isLogin="${isLogin}"; 

java-在超链接&amp;amp;lt;a&amp;amp;gt;的href或&amp;amp;lt;form&amp;amp;gt;的action中可以使用“JSP表达式”语法吗

问题描述 在超链接<a>的href或<form>的action中可以使用"JSP表达式"语法吗 我是这样写的: 解决方案 用这个${pageContext.request.contextPath}替代你写的jsp脚本 解决方案二: 我是这样写的: 解决方案三: 标签写全会被吞......... form:form action="<%=request.getContextPath() %>/student/studentModifyFini

关于在JavaScript中使用EL表达式的问题,到底用不用加单引号或者双引号或者不加?

问题描述 关于在JavaScript中使用EL表达式的问题,到底用不用加单引号或者双引号或者不加? 之前我自己编辑百度地图api时候,EL表达式是直接写的,但是并不能使用. 当时我在csdn上找到了如下这篇文章,说是要加引号.http://blog.csdn.net/xuechongyang/article/details/8629473然后就成功了. 比如下代码的最后一句. <script type=""text/javascript""> // 百度

【转】浅谈.NET中的数据绑定表达式1

数据绑定表达式必须包含在<%#和%>字符之间.格式如下: <tagprefix:tagname property='<%# data-binding expression %>' runat="server" />或者如下: <%# data-binding expression %> ASP.NET 支持分层数据绑定模型,数据绑定表达式使用 Eval 和 Bind 方法将数据绑定到控件,并将更改提交回数据库.Eval 方法是静态单向(只

如何用jquery实现,当点击添加行后,行中的value中的EL表达式的值也增加

问题描述 如何用jquery实现,当点击添加行后,行中的value中的EL表达式的值也增加 类似这里添加行的value永远是questionNaireQuestion.option1 , value=""${questionNaireQuestion.option1 }""能否达到这样的效果: value=""${questionNaireQuestion.'+(phName)+' }"",这样的写法是错误的,改如何写达到如此