`
zccst
  • 浏览: 3319447 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php5中const、define和static

    博客分类:
  • PHP
 
阅读更多
一、const
在编程中,我们一般用常量来定义那些在运行时不能被改变的常数值,下面让我们来看看php中的const吧,这个东西其 实没有什么好说的,只是为了知识的完善而随便说下吧。在定义一个常量的时候我们可以使用const来修饰这个常量,使用const修饰的常量更其它的常量有点不同的地方就是:常量名前不要使用”$”,切记!当然这个常量值也是不能修改的,一旦定义就不能程序的任何地方进行“人为”的修改。这跟使用 define定义是一样,还有就是使用const来定义当然也遵守其它常量的命名规则――使用大字的字母。

看个小例子吧:
<?php
class say_const{
const CHARSET  =  "中国";
    public function say_hello(){
        echo slef::CHARSET;
    }
}
$const1  =  new say_const();
$const1->say_hello();

作为其它要说明的,请看下面这个扩展阅读:
    常量前面没有美元符号($);
    常量只能用 define() 函数定义,而不能通过赋值语句;
    常量可以不用理会变量范围的规则而在任何地方定义和访问;
    常量一旦定义就不能被重新定义或者取消定义;
    常量的值只能是标量;
    常量只能包含标量数据(boolean,integer,float 和 string),不要定义 resource常量.
    可以用函数 constant() 来读取常量的值.get_defined_constants()可以获得所有已定义的常量列表.
    如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 “CONSTANT”),此时将发出一个 E_NOTICE 级的错误.


PHP 的“魔术常量”.
__LINE__
__FILE__
__FUNCTION__
__CLASS__
__METHOD__


在面向对象中
接口:
1 不能够定义静态变量在类的 成员变量(常量除外)
2 定义的常量 const YOUCONST = VALUE,不能在子类中覆盖,在子类中以 interfaceName::YOUCONST的方式调用
3 不能使用parent::YOUCONST的方式调用接口的常量

类:
1 const 变量可以使用parent::YOUCONST的方式,className::YOUCONST的方式在子类中访问
2 const定义的变量,在子类中可以被覆盖
3 当然在类中可以定义静态成员变量了


二、define
什么是自定义常量?

    所谓自定义常量,就是指用一个字符标识来代表另外一个对象,这个对象可以是一个数值,一个字符串,一个布尔值等等。它的定义与变量有着许多相似之处。只有一点不一样,那就是变量的值在程序运行过程中可以任意更改,而自定义常量一旦定义下来后,在程序运行中就再也不能修改了。
    定义方式如下:
    define("YEAR","2012");
    使用define关键字来将2012这个字符串绑定到YEAR上来,以后在程序当中出现YEAR的地方就用2012来代替。一般情况下,我们定义常量时,常量名都使用大写字母。例,
<?php
define("YEAR","2012");
define("MONTH","12");
define("DATE","21");
define("THING","Doomsday");
echo YEAR."-".MONTH."-".DATE." ".THING;
?>



三、static
static关键字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能一定程序对该成员尽心保护。类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样的,类似于全局函数。类的静态方法能访问类的静态的属性。另外说明的是,static的成员,必须使用self来访问,使用this会出错。


static变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值。
例如:
    <?php  
      
    class Counter  
    {  
     private static $count = 0;//定义一个静态属性  
     const VERSION = 2.0;//定义一个常量  
      
     //构造函数  
     function __construct()  
     {  
      self::$count++;  
     }  
       
     //析构函数  
     function __destruct()  
     {  
      self::$count--;  
     }  
       
     //定义一个静态的方法  
     static function getCount()  
     {  
      return self::$count;  
     }  
    }  
      
    //创建一个实例  
    $c = new Counter();  
      
    //执行打印  
    print( Counter::getCount(). "<br>\n" ); //使用直接输入类名来访问静态方法Counter::getCount  
      
    //打印类的版本  
    print( "Version useed: " .Counter::VERSION. "<br>\n" );  
      
    ?>  



如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    php中const与define的区别 具体归纳详细介绍

    在PHP编程中,`const`和`define`都是用来定义常量的方法,但它们之间存在着明显的差异。本文将从多个方面详细对比这两种定义方式的不同之处,并通过具体的例子加以说明。 #### 1. 定义范围 - **`const`**: 主要...

    解析php中static,const与define的使用区别

    PHP中static、const和define这三种不同的概念均与常量的定义和使用相关,但它们在使用场景和工作方式上有着本质的区别。以下是对这三者的详细解析。 首先是define,它是预处理指令,用于定义宏常量。在PHP中,使用...

    php面向对象全攻略 (十) final static const关键字的使用

    个关键字只能用来定义类和定义方法,不能使用final 这个关键字来定义成员属性,因为final 是常量的意思,我们在PHP 里定义常量使用的是define()函数,所以不能使用final 来定义成员属性。

    PHP类实例教程.docx

    以下是对PHP5中类和对象的详细讲解。 1. **类和对象的基础部分** 类是对象的模板或蓝图,它定义了一组属性(数据成员)和方法(成员函数)。对象是类的实例,拥有类定义的属性和方法。在PHP5中,你可以通过`class`...

    PHP程序设计-3期(KC016) 课后习题2-2 自定义常量.doc

    本节主要探讨如何在PHP中定义和使用自定义常量以及系统常量。 1. 自定义常量: 自定义常量需要通过内置的`define()`函数来创建。这个函数接收两个参数:常量名和常量值。例如: ```php define("MY_CONSTANT", ...

    php 函数中使用static的说明

    除了`static`变量,PHP还有`final`、`const`和`define`等关键字,它们在不同的上下文中用于创建不可变的常量。`final`用于声明不可被覆盖的类或方法,`const`用于在类中定义常量,而`define`则是在全局范围定义常量...

    PHP-面试题基础篇.pdf

    PHP中定义常量有两种方式,const和define。const是语言结构,用于定义类常量;define是函数预定义常量。const比define速度快,而且const定义的常量可以是类内部的成员,而define定义的常量作用域则是全局的。 常量...

    腾讯开发PHP基础培训教程

    - 常量:使用`define()`函数定义常量,如`define('CONST_NAME', '值')`。常量一旦定义,其值不能更改,且在程序的任何地方都可直接使用。 2. **变量的引用**: - 引用赋值不同于普通的赋值操作,它使两个变量指向...

    PHP开发基础培训 中文版 PPT

    在PHP开发基础培训中,我们将深入探讨PHP编程的关键概念,包括变量、常量、函数、对象、数组、字符串和其他核心特性。以下是对这些概念的详细解释: 1. 变量: - 变量是存储数据的容器。在PHP中,变量以美元符号 ...

    php学习总结.pdf

    5. **static关键字**:`static`用于声明类的静态成员属性和方法。静态成员不属于任何特定的对象实例,而是属于类本身,它们在类首次加载时分配空间。静态成员可由类名或`self`关键字访问,且在静态方法中不能访问非...

    PHP100视频教程 22:PHP面向对象开发的学习(六)

    1、关键字 :final 用来定义类和方法的一个重要关键字,当定义类的时候该类将不能被继承,当用来...4、关键字 :const 用来定义类中的常量,类似PHP外部定义常量的关键字define(); Const只能修饰类当中的成员属性!

    PHP100视频教程 22:PHP面向对象开发的学习(六).rar

    软件介绍 1、关键字 :final  用来定义类和方法的一个重要关键字,当定义类的时候该类将不能被继承, ... 用来定义类中的常量,类似PHP外部定义常量的关键字define(); Const只能 修饰类当中的成员属性!

    【优质】php培训总结-精选word文档 (16页).docx

    - 常量在PHP中用`define()`函数定义,但在类内部则使用`const`关键字。 - `const`定义的常量在程序运行时不可改变,并且不能通过对象访问,只能通过类名或`self`关键字访问。 4. **静态成员**: - `static`...

    php培训课件php培训课件php培训课件

    常量是不可改变的值,通过`define`函数定义,如`define('CONST_NAME', '值')`。 2. **数据类型与强制转换**:PHP支持多种数据类型,包括整型、浮点型、字符串和布尔型等。强制转换可通过`intval()`、`floatval()`、...

Global site tag (gtag.js) - Google Analytics