constphp
A. php const在类里面定义的常量在其他类中能使用吗
可以使用,参考代码如下。
<?php
classMyClass1{
//常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号
constconstant='constantvalue';
functionshowConstant1(){
echoself::constant."<br>";
}
}
classMyClass2{
functionshowConstant2(){
//访问MyClass1的常量constant
echoMyClass1::constant;
}
}
$class=newMyClass2;
$class->showConstant2();exit;
?>
B. php中const和define的区别
define部分:
宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段。(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议。)
宏的语法为:
#define 宏名称 宏值
作为一种建议和一种广大程序员共同的习惯,宏名称经常使用全部大写的字母。
利用宏的优点:
1)让代码更简洁明了
当然,这有赖于你为宏取一个适当的名字。一般来说,宏的名字更要注重有明确直观的意义,有时宁可让它长点。
2)方便代码维护
对宏的处理,在编译过程中称为“预处理”。也就是说在正式编译前,编译器必须先将代码出现的宏,用其相应的宏值替换,这个过程有点你我在文字处理软件中的查找替换。所以在代码中使用宏表达常数,归根结底还是使用了立即数,并没有明确指定这个量的类型。
const部分
常量定义的格式为:
const 数据类型 常量名 = 常量值;
而const定义的常量具有数据类型,定义数据类型的常量便于编译器进行数据检查,使程序可能出现错误进行排查。常量必须一开始就指定一个值,然后,在以后的代码中,我们不允许改变此常量的值。
两者之间的区别:
内存空间的分配上。define进行宏定义的时候,不会分配内存空间,编译时会在main函数里进行替换,只是单纯的替换,不会进行任何检查,比如类型,语句结构等,即宏定义常量只是纯粹的置放关系,如#define null 0;编译器在遇到null时总是用0代替null它没有数据类型(还有疑问请找C语言书籍看预处理部分或者看MSDN.而const定义的常量具有数据类型,定义数据类型的常量便于编译器进行数据检查,使程序可能出现错误进行排查,所以const与define之间的区别在于const定义常量排除了程序之间的不安全性.
C. php能定义数组为类的常量吗
可以。
在PHP中,我们不能用const直接定义数组常量,但是const可以定义字符串常量,结合eval()函数使字符串常量能执行。所以,我们可以用定义字符串常量的方式来返回一个数组常量。
<?php
class Test
{
const MY_ARR="return array(\"a\",\"b\",\"c\",\"d\");";
public function getConstArray()
{
return eval(Test::MY_ARR);//eval()函数把字符串作为PHP代码执行
}
}
$t=new Test();
print_r($t->getConstArray());
?>
D. php如何定义常量,系统常量和使用常量
定义常量
define('NAME','hello');
echoNAME;//hello
PHP 自 5.3 后可以直接通过 const 关键字来定义常量
constNAME='hello';
echoNAME;//hello
系统常量可以直接打印,如:
echo__DIR__;//当前执行文件的路径
echo__FILE__;//当前执行的文件地址及文件名
E. PHP CLASS CONST 常量=变量
通常const修饰符用于明确表示此“变量”不能修改。而常量更普通的意义在于它不是变量。
不同的系统约定也不一样,比如简单常量,有的系统可能就当“立即数”处理,存在于代码段;字符串、结构体常量,就和静态变量一样,存在于静态储存区(数据段)。
另外,delphi里还存在一种“静态变量”,也是以const修饰,它实际上等同于c里的static修饰。
左值是一个动态概念。常量可以作左值,左值很显然可以是变量,表达式。
F. C语言中const是什么意思。。。
const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。
const关键字使用非常的灵活,这一点和php差别很大,php中const用来在类中定义一个常量,而在c中,const因位置不同有不同的作用,因情景不同有不同的角色,使用起来也是非常的灵活。
一、const用来修饰普通的变量(指针变量除外)的时候,const type name 和 type const name 这两种形式是完全等价的,都表示其是常量,不能进行修改。
二、const用来修饰指针变量的时候,分为以下四种情况
1、const type *name :这种情况下,const修饰的指针变量name所指向的type类型对象,也就是说指向的这个对象是不能进行修改的,因为其是常量,而指针变量确实可以进行修改的。
2、type const *name :这种情况下,const修饰的指针变量name所指向的type类型对象,意思完全同上,只是颠倒了以下顺序。
3、type * const name :这种情况下,const修饰的指针变量name,也就是说这个指针变量的值是不能进行修改的,但是指针变量所指向的对象确实可以修改的。
4、const type * const name :这种情况下,const修饰的指针变量name以及指针变量name所指向的对象,也就是说这个指针变量以及这个指针变量所指向的对象都是不能进行修改的。
(6)constphp扩展阅读
使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。
在c中,对于const定义的指针,不赋初值编译不报错,int* const px;这种定义是不允许的。(指针常量定义的时候对其进行初始化)int const *px;这种定义是允许的。(常指针可以再定义的时候不初始化)
但是,在C++中int* const px;和const int* const px;会报错,const int* px;不报错。必须初始化指针的指向int* const px = &x;const int* const px=&x;强烈建议在初始化时说明指针的指向,防止出现野指针!
G. php static和const
静态的常量字符指针。
一个静态的、值不能被改变的整型常量。静态变量与全局变量差不多,就是函数执行完毕之后,这个变量的值仍然保留,下次调用该函数时,这个变量的值仍然存在。
const 是常量,即从程序运算开始到结束,数值不变的量。
static 用于变量,声明这个变量的存储单元静态分配,从程序运算开始到结束这个变量的存储单元不变化。static常用于全局量,一是存在里面的值始终有效,不因进退出子程序数值消失,另外static的变量运算速度比非静态分配的快。
常量是不出现在等号左边的。例如输出输入格式里的字符串就是常量,程序里直接写入的数据也是常量。
y = a * x + 300.0; 300.0 是常量. 常量在电脑里也被分配存放单元的,但值不可变。
网络贴吧里有好些吧是有关编程的。贴吧就是论坛--Forum 啊。