PHP_Const
PHP_Const
常量 规则:
1 总是大写
2 A-Z 及 从127~255的ASCII字符
3 全局范围
4 用define函数定义
5 只能包含标量数据 如Boolean integer float string
6 前面不可加美元符
PHP自带常量=特殊常量
不区分大小写
_LINE_ 文件中的当前行号
_FILE_ 文件的完整路径+文件名
_FUNCTION_ 函数名称
_CLASS_ 类名称
_METHOD_ 类的方法名
_LINE_
php脚本行数 如果引用文件 则在引用文件内的该常量为被引用文件的行
而非引用文件的行 即向下传递
_FILE_
原理同上
define部分:
宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段。
(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议。)
宏的语法为:
#define 宏名称 宏值
作为一种建议和一种广大程序员共同的习惯,宏名称经常使用全部大写的字母。
利用宏的优点:
1)让代码更简洁明了
当然,这有赖于你为宏取一个适当的名字。一般来说,宏的名字更要注重有明确直观的意义,有时宁可让它长点。
2)方便代码维护
对宏的处理,在编译过程中称为“预处理”。
也就是说在正式编译前,编译器必须先将代码出现的宏,用其相应的宏值替换,这个过程有点像你我在文字处理软件中的查找替换。所以在代码中使用宏表达常数,归根结底还是使用了立即数,并没有明确指定这个量的类型。
const部分
常量定义的格式为:
const 数据类型 常量名 = 常量值;
常量必须一开始就指定一个值,然后,在以后的代码中,我们不允许改变此常量的值。
两者之间的区别:
1 内存空间的分配上。
define进行宏定义的时候,不会分配内存空间,编译时会在main函数里进行替换,只是单纯的替换,不会进行任何检查,
比如类型,语句结构等,即宏定义常量只是纯粹的置放关系,如#define null 0;
编译器在遇到null时总是用0代替null它没有数据类型(还有疑问请找C语言书籍看预处理部分或者看MSDN.
const定义的常量 具有数据类型,
定义数据类型的常量便于编译器进行数据检查,使程序可能出现错误进行排查,
所以const与define之间的区别在于
const定义常量排除了程序之间的不安全性.
define定义全局常量,在任何地方都可以访问
const用于类成员变量定义,只能用类名访问不能更改
要是初学 这样先理解着 别太钻牛角尖就行
PHP_Const的更多相关文章
随机推荐
- Linux查看系统信息(操作系统版本,进程,任务,CPU,内存,磁盘等信息)
查看操作系统: cat /proc/version # 内核版本 cat /etc/issue # 发行版本 head -n 1 /etc/issue uname -a lsb_release ...
- hdu----(4686)Arc of Dream(矩阵快速幂)
Arc of Dream Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Tota ...
- DataTable 转成字符串数组
private static string[] autoCompleteWordList = null; public string[] GetCompleteDepart(int count,str ...
- ABAP-smartform-一页3列的条码打印
1.自建barcode: se73->System bar code->change->create->new input the name of the bar code y ...
- ASP.NET Web API中的依赖注入
什么是依赖注入 依赖,就是一个对象需要的另一个对象,比如说,这是我们通常定义的一个用来处理数据访问的存储,让我们用一个例子来解释,首先,定义一个领域模型如下: namespace Pattern.DI ...
- 关于for循环条件性能问题
昨天看一博客写到一条 尽量使用 for(int i=0,ct=list.Count();i<ct;i++){} 这样的格式,因为我平时一般都是用for(int i=0;i<list.Cou ...
- Stylus Studio的安装与卸载
- [转]JDK6和JDK7中的substring()方法
substring(int beginIndex, int endIndex)在JDK6与JDK7中的实现方式不一样,理解他们的差异有助于更好的使用它们.为了简单起见,下面所说的substring() ...
- c++读入之 -- 汉字读入遇到的问题
好吧,课题和汉语处理有关,于是就要求用c++来读入汉字进行处理. 首先使用wchar_t字符即宽字符,然后这样定义: #include <cstdio> #include <cwch ...
- placeholder在ie789下无效
<input type="text" class="input" placeholder="用户名/手机号码/邮箱" value=&q ...