首页 php教程 php手册 php中static const define变量的区别

php中static const define变量的区别

May 23, 2016 pm 01:07 PM
const define static

在php中static const define三个变量都是可以叫做静态表情了,意思是定义好的就不能再变了,但是他们三个是针对不同的域名,下面我来给各位介绍一下它们三个的区别吧.

const

用来定义那些在运行时不能被改变的常数值,一旦定义且不能改变其值,假如在程序中改变了它的值,那么会出现错误,代码如下:

<?php  
class Math{ 
    const pi=3.14159; 
} 
echo Math::pi;
登录后复制

前面没有美元符号($),可以在不需要初始化该类的情况下实用,常量值必须是一个常量表达式,const定义的变量,在子类中可以被覆盖.

在类的内部定义,php5.3以后也可以在类的外部定义,const不可以用表达式.

define()

可以用 define() 函数来定义常量,一个常量一旦被定义,就不能再改变或者取消定义.

常量只能包含标量数据(boolean,integer,float 和 string).

可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号.

define定义全局常量,在任何地方都可以访问.

define不能在类中定义而const可以.

define可以采用任何表达式,如define('BIT_5',1 << 5);

代码如下:

<?php 
    define("CONSTANT", "Hello world."); 
    echo CONSTANT; // outputs "Hello world." 
    echo Constant; // outputs "Constant" and issues a notice. 
?>
登录后复制

define()与const()两者之间的区别:

内存空间的分配上,define进行宏定义的时候,不会分配内存空间,编译时会在main函数里进行替换,只是单纯的替换,不会进行任何检查,比如类型,语句结构等,即宏定义常量只是纯粹的置放关系,如#define null 0;编译器在遇到null时总是用0代替null它没有数据类型(还有疑问请找C语言书籍看预处理部分或者看MSDN.而const定义的常量具有数据类型,定义数据类型的常量便于编译器进行数据检查,使程序可能出现错误进行排查,所以const与define之间的区别在于const定义常量排除了程序之间的不安全性.

define定义全局常量,在任何地方都可以访问.

const用于类成员变量定义,只能用类名访问不能更改要是初学这样显理解着就行别太钻牛角尖就行

static

php中的变量作用范围的另一个重要特性就是静态变量(static 变量).

静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果.

static关键字在类中,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例.

static的成员,必须使用self来访问,代码如下:

class Counter 
{ 
    public static $count = 0;//定义一个静态属性 
    //定义一个静态的方法 
    static function getCount() 
    {  
        return self::$count; 
    } 
} 
echo Counter::getCount(); 
Counter::count;
登录后复制

最后补充一个例子:

<?php 
echo HAHA; 
class test {
    public $name2 = &#39;name2&#39;; 
    static $name = &#39;name&#39;; 
    const CHARSET = "中国"; 
    public function say_hello() { 
        echo self :: CHARSET; 
    } 
    public static function set_name() { 
        echo self :: $name; 
    } 
    public static function set_name2() { 
        self::set_name(); 
    } 
    
    public static function set_name3() { 
        echo $this->name; 
        $this->set_name(); 
    } 
    
} 
$const1 = new test(); 
// 1 
$const1->say_hello(); 
// 2 
echo "<br />"; 
echo test :: CHARSET; 
// 3 
echo "<br />"; 
echo $const1->name; 
// 4 
echo "<br />"; 
echo $const1->set_name(); 
// 5 
echo "<br />"; 
echo $const1->set_name2(); 
// 6 
echo "<br />"; 
echo test::CHARSET; 
// 7 
echo "<br />"; 
echo $const1->CHARSET;
登录后复制


永久链接:

转载随意!带上文章地址吧。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

define怎么定义多行宏 define怎么定义多行宏 Oct 11, 2023 pm 01:24 PM

define定义多行宏可以通过使用 `\` 将 `do { \ printf("%d\n", x); \ } while (0)` 分成了多行进行定义。在宏定义中,反斜杠 `\` 必须是宏定义的最后一个字符,且不能有空格或注释跟随。使用 `\` 进行续行时,注意保持代码的可读性,并确保每个行末都有 `\`。

探究PHP中define函数的重要性与作用 探究PHP中define函数的重要性与作用 Mar 19, 2024 pm 12:12 PM

PHP中define函数的重要性与作用1.define函数的基本介绍在PHP中,define函数是用来定义常量的关键函数,常量在程序运行过程中不会改变其值。利用define函数定义的常量,在整个脚本中均可被访问,具有全局性。2.define函数的语法define函数的基本语法如下:define("常量名称","常量值&qu

深入理解C语言中的const 深入理解C语言中的const Feb 18, 2024 pm 12:56 PM

C中const的详解及代码示例在C语言中,const关键字用于定义常量,表示该变量的值在程序执行过程中不能被修改。const关键字可以用于修饰变量、函数参数以及函数返回值。本文将对C语言中const关键字的使用进行详细解析,并提供具体的代码示例。const修饰变量当const用于修饰变量时,表示该变量为只读变量,一旦赋值就不能再修改。例如:constint

define怎么定义条件编译 define怎么定义条件编译 Oct 11, 2023 pm 01:20 PM

define定义条件编译可以使用 `#ifdef`、`#ifndef`、`#if`、`#elif`、`#else` 和 `#endif` 预处理指令来实现。

一起聊聊var、let以及const的区别(代码示例) 一起聊聊var、let以及const的区别(代码示例) Jan 06, 2023 pm 04:25 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要给大家介绍了var、let以及const的区别有哪些,还有ECMAScript 和 JavaScript的关系介绍,感兴趣的朋友一起来看一下吧,希望对大家有帮助。

c语言const怎么用 c语言const怎么用 Sep 20, 2023 pm 01:34 PM

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

在 Windows 11 上修复音频服务无响应问题的 18 种方法 在 Windows 11 上修复音频服务无响应问题的 18 种方法 Jun 05, 2023 pm 10:23 PM

音频输出和输入需要特定的驱动程序和服务才能在Windows11上按预期工作。这些有时最终会在后台遇到错误,从而导致音频问题,如无音频输出、缺少音频设备、音频失真等。如何修复在Windows11上没有响应的音频服务我们建议您从下面提到的修复开始,并逐步完成列表,直到您设法解决您的问题。由于Windows11上的多种原因,音频服务可能无法响应。此列表将帮助您验证和修复阻止音频服务在Windows11上响应的大多数问题。请按照以下相关部分帮助您完成该过程。方法一:重启音频服务您可能会遇

C++语法错误:必须在定义时初始化const对象,改怎么处理? C++语法错误:必须在定义时初始化const对象,改怎么处理? Aug 22, 2023 am 09:13 AM

对于C++程序员来说,语法错误是极其常见的问题之一。其中一种常见错误是必须在定义时初始化const对象。如果你遇到了这种情况,该怎么处理呢?首先,我们需要了解什么是const对象。const关键字是C++中的一种特殊类型限定符,用于指定变量的值无法在程序的执行期间被改变。这种变量称为“常量”。如果在定义const对象时没有初始化它,你将会遇到上述错误。这是

See all articles