zoukankan      html  css  js  c++  java
  • php final static const成员属性用法

     

    http://www.111cn.net/phper/php/38976.htm

    首先来说说final
    1.final不能用来修饰成员属性
    2.final只能修饰类和方法
    作用:被修饰的类不能被子类所继承;被修饰的方法不能被子类的方法覆盖。

    < ?PHP 

    final class BaseClass { 

    public function test() { 

    echo "BaseClass::test() calledn"; 

    final public function moreTesting() { 

    echo "BaseClass::moreTesting() calledn"; 

    class ChildClass extends BaseClass { 

    public function moreTesting() { 

    echo "ChildClass::moreTesting() calledn"; 

    // Results in Fatal error: Cannot override final method BaseClass::moreTesting() 

    ?> 


    然后来说说static


    1.static用来修饰成员属性和成员方法,但不能用来修饰类
    2.用static修饰的成员属性可以被同一个类的所有对象共享
    3.静态的数据是存在 内存中的 数据段中(初始化静态段)
    4.静态的数据是在类在第一次加载时,分配到内存中的
    5.什么是类被加载?只要在程序中使用到这个类(有这个类名出现)
    6.静态的成员属性都要用类名去访问,不用创建对象,不用对象去访问;在类里边可以用self代表本类($this)
    7.静态方法,不能访问非静态的成员属性(但是,在非静态方法却能访问静态的成员属性),非静态的成员属性,必须用对象访问,在内部访问非静态成员属性,用$this.
    8.如果你确定一个方法中不需使用到非静态的成员属性,则可以将这个方法声明为静态方法,不需实例化对象,就可以访问

    例子 演示需要静态变量的例子

    <?PHP
       function Test()
       {
       $w3sky = 0;
       echo $w3sky;
       $w3sky++;
       }
       ?>

    静态变量与递归函数

    <?PHP
       function Test()
       {
       static $count = 0;
      
       $count++;
       echo $count;
       if ($count < 10) {
       Test();
       }
       $count--;
       }
       ?>

    注: 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。

    例子 声明静态变量

    <?PHP
       function foo(){
       static $int = 0;// correct
       static $int = 1+2;   // wrong (as it is an expression)
       static $int = sqrt(121); // wrong (as it is an expression too)
      
       $int++;
       echo $int;
       }
       ?>


    最后来说说const


    1.它只能用来修饰成员属性
    2.在类中声明常量必须使用const
    3.访问方式和访问静态成员属性一样(类外使用 类名::成员属性,类里边则使用self::成员属性)
    4.常量一定要在声明的时候就给初始值

    常量只能包含标量数据(boolean,integer,float 和 string),不要定义 resource常量.

    可以用函数 constant() 来读取常量的值.get_defined_constants()可以获得所有已定义的常量列表.
    如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 “CONSTANT”),此时将发出一个 E_NOTICE 级的错误.

  • 相关阅读:
    (转载) 随机数原理
    ZOJ 2588 Burning Bridges(求桥的数量,邻接表)
    生成不重复的随机数对(C/C++)
    比较两个文件是否相同(C/C++语言)
    计算文件大小(C/C++语言)
    (转载)Nim游戏博弈(收集完全版)
    将一串字符串全排列输出(回溯法)
    Linux中使用Crontab定时监测维护Tomcat应用程序的方法
    Nginx单向认证的安装配置
    非关系型数据库 2017-02-12 22:27 189人阅读 评论(2) 收藏
  • 原文地址:https://www.cnblogs.com/PheonixHkbxoic/p/5731524.html
Copyright © 2011-2022 走看看