php中const定义常量

const 常量
1.在定义时必须被初始值,
2.前面不加任何修饰符
3.变量名字母一般都大写
4.常量可以被子类继承
5.一个常量是属于一个类的,而不是某个对象的

作用:当某些值是固定不变的,就用const

1.const
定义的常量和define()定义的常量的区别?

希望一个成员变量不被修改 例如圆周率 3.1415926
定义:const 常量名=值;
没有$符
访问:类名 ::常量名 或 接口名::常量名

<?php                      defined(‘TEXT‘);检查一个名称的常量是否存在
 class
A{
 const TAX_RATE=0.08;
 public function
payTax($var){
 return $var*A::TAX_RATE;
}
}
$a=new A();
echo
$a->payTax(200):
?>

用法一:const用于类成员变量,一经定义不可修改,define用于全局常量,不可用于类成员变量的定义,const可在类中使用,define不能。

用法二:const定义的常量大小写敏感,而define可通过第三个参数(为TRUE表示大小写不敏感)来指定大小写是否敏感。在运行时定义一个常量。define(‘TXE‘,100,TRUE);

用法三:const不能在条件语句中定义常量,而define函数可以。if($a>10){define(‘LE‘,‘hello‘);}

2.global定义的全局常量和$GLOBALS的区别?

$GLOBALS(超全局变量) — 引用全局作用域中可用的全部变量, 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

<?php
function test() {
    $foo = "local
variable";

echo ‘$foo in global scope: ‘ . $GLOBALS["foo"] .
"\n";
    echo ‘$foo in current scope: ‘ . $foo .
"\n";
}

$foo = "Example content";
test();
?>

Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件

代码如下:
<?PHP
$a=123;
function aa()
{
Global $a;
//如果不把$a定义为global变量,函数体内是不能访问函数体外部的$a的,但是可以定义一个相同的名字$a,此时这个变量是局部echo

$a;   变量,只能在函数体内部使用。
}
aa();
?>

总结:在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,

复制代码 代码如下:
global $a;
$a=123; 必须分开赋值
function
f()
{
echo $a; //错误,
}
//再看看下面一例
function f()
{

global $a;
$a=123;
}
f();
echo $a; //正确,可以使用

static定义的静态变量?

时间: 2024-10-25 19:24:38

php中const定义常量的相关文章

iOS define 宏定义 和 const定义常量区别

const   const 是c++中的修饰符.  c++中常用来定义常量,修饰左值. #define 宏定义语句, 在预处理阶段直接做文本替换,不做类型检查. 它们之间的最大区别: 1.  对于const 变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数.因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多.#define所定

为什么很多人使用#define而不是const定义常量

众所周知,C语言一开始只有#define,C程序员用#define定义符号常量.但后来ANSI C加入了const限定符,而const应该比#define更好,为什么现在的C程序员还在大量使用#define来定义常量呢? 这并不是我没有根据地乱说的.这样的例子有很多,例如<limits.h>,例如Windows API,例如OpenGL-- <limits.h>是C标准头文件,发明C语言的人为什么不知道const吗? Windows是Microsoft开发的,难道Microsoft

#define与const定义常量的区别

首先,#define 宏定义,使用方法如下: 1 #define PI 3.14159 2 3 #define MAX(a,b) a>=b?a:b const使用方法 const [常量类型] 符号常量名=表达式;,如果在定义时缺省“常量类型”,则默认为int类型.如下: 1 const double PI = 3.14159; 2 const TEST = 2; 下边通过例子来说明两者之间的区别: 首先#define, T2的值病不是想象中的0而是10,因为宏展开时知识简单的替换,T2被展开为

深入分析php中const和define定义常量的区别

const和define在php中都是定义常量了,但是它们的具体区别是什么?其实非常的简单const用于类成员变量定义,一旦定义且不能改变其值.define定义全局常量,在任何地方都可以访问 页define不能在类中定义而const可以了,下面整理了一篇文章. 大家都知道define是定义常量的,如果在类中定义常量呢?当然不能用define,而用const,如下例: <?php define('PHP', 'I love PHP'); // 在类外面通常这样定义常量 if (defined('P

C/C++中const关键字的用法及其与宏定义的比较

1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性. 即它所修饰的变量不能被修改. 2.修饰局部变量 1 const int a = 10; 2 int const b = 20; 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了,而且编译器也不允许不赋初值的写法: 在C++中不赋初值的表达一写出来,编译器即报错,且编译不通过. 在C中不赋初值的表达写出来时不报错,编译时只有警告,编译可以

c++中const关键字全面总结

一.const作用 1.const定义常量 注意:const只对它左边的东西起作用,唯一的例外就是const本身就是最左边的修饰符,那么它才会对右边的东西起作用. (1)const修饰变量,以下两种定义形式在本质上是一样的.它的含义是:const修饰的类型为TYPE的变量value是不可变的. TYPE const ValueName = value; const TYPE ValueName = value; (2)将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初

php中const与define的区别

1 版本差异: const 要求php的版本>5.3.0 define 可以兼容php4,php5 等版本 2 定义的位置区别: const关键字定义的常量是在编译时定义的,因此const关键字定义常量必须处于最顶端的作用区域 (意味着不能在函数内.循环内以及if语句之内用const来定义常量) 函数define()  定义的常量是在执行define()函数时定义的,因此可以在函数内.循环内.if语句内等函数能够被调用的任何地方使用define()函数定义常量 3 对值的表达式支持的差异: co

C++中const简介

C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的. const关键字的作用主要有以下几点: (1)可以定义const常量,具有不可变性. 例如: const int Max=100; int Array[Max]; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐

C++中const关键字详解

1.什么是const? const意味着是常量类型,被const修饰的变量或对象是不能被修改和更新的,当然在某些情况下,我们可以偷梁换柱的改变它. 2.为什么要引入const? 最初的目的是为了取代预编译指令:define  MAX  (1024)  ,显然这样的宏定义常量是C语言中继承而来的,C++意识到这种宏替换会存在边际效应,因此希望const能替代它 3.const有什么作用? (1)可以定义const常量,具有不可变性. 例如: const int Max=100; int Array