• 专注于网站建设,网络推广,关键词优化,SEO优化,专业的网站建设开发团队!
首页 > IT技术 > PHP > 内容

php面向对象之类的静态成员

2015-06-10 21:16:18   来源:叶景网络
    php面向对象中类的静态成员包括静态方法和静态属性.
    静态属性包含在类中要封装的数据,可以由所有类的实例共享. 实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量。
    静态方法则实现类需要封装的功能,与特定的对象无关. 静态方法非常类似于全局函数. 静态方法可以完全访问类的属性,也可以由对象的实例来访问,不论访问的限定语是什么。
    类的静态成员与一般的类成员不同: 静态成员与对象的实例无关,只与类本身有关. 他们用来实现类要封装的功能和数据,但不包括特定对象的功能和数据.
    下面将通过一个实例来加深对静态成员的理解。
    <?php
    class MyClass {             
    static $count=0;               //在类中声明一个静态成员属性count,用来统计对象被创建的次数
    function __construct() {      //每次创建一个对象就会自动调用一次这个构造方法
    self::$count ++;            //在类中使用self访问静态成员count,使其自增1
    }
    static function getCount() { 
        return self::$count ;  
       }
    }
    $MyClass=new MyClass();         //通过MyClass类创建第一个对象,在构造方法中将count累加1
    echo MyClass:: getCount().'<br/>'; //在类的外面使用类名来直接访问静态方法getCount()
    $MyClass2=new MyClass();
         echo MyClass:: getCount().'<br/>';
    ?>
    程序运行结果:
    1
    2
    上面的MyClass类的$count属性声明为static,静态成员$count在类中只保留一个变量值,而这个变量值对所有的实例都是有效的,也就是说,所有的实例共享这个成员,类似于全局变量,所以对$count值的任何改变都会反映到所有实例化对象中。需要注意的是$count应使用self关键字加上作用域限定符 (::)或者类名加上作用域限定符引用(MyClass::$count),而不是通过this和箭头操作符。因为静态成员是属于类的,而不属于对象,如果试图使用"$this->$count"的形式访问将会导致语法错误。
    总结
    1、类的静态成员使用static关键字来标识
    2、不能在类中使用$this来引用静态成员属性和方法。
    3、类中的静态成员是不需要对象而使用类名来直接访问
    4、在类中,使用“self::"或者"类名::"来访问其它静态成员
    5、在类的外部使用"类名 :: 类成员"形式静态地访问某个成员,不仅省略掉实例化类的代码,而且效率会更高
上一篇:第一页
下一篇:php面向对象之__autoload()
叶景网络,网络推广,网站建设
特别推荐RECOMMEND
搜索引擎网站关键词seo优化的意义
视频推广怎么做
网站seo优化怎么做关键词排上首页?
SEO介绍什么叫搜索引擎网站关键词优化
seo优化怎样做提升关键词排名
热点图文Hot
PHP通过soap调用.net接口asmx文件 PHP通过soap调用.ne
PHP开发环境配置 PHP开发环境配置
wamp集成环境的虚拟域名配置方法 wamp集成环境的虚拟
wamp独立安装配置 wamp独立安装配置
关注排行RANKING
1

PHP通过soap调用.net接口asmx文件

PHP通过soap调用.net接口asmx文件 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

2

PHP开发环境配置

PHP开发环境配置 下载PHP安装程序,并解压缩。(下载页面为http: www php net downloads php,下...

3

wamp集成环境的虚拟域名配置方法

wamp集成环境的虚拟域名配置方法 最近,发现身边很多人用wamp集成环境,这个虽然比较快捷,一步到位,但是只能访...

4

wamp独立安装配置

wamp独立安装配置 apache 中的 httpd conf LoadModule php5_module "D: lamp php5 php5apache2_2 dll " 加载模块并开启

5

php 获取今天明天昨天时间戳

php 获取今天明天昨天时间戳 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

6

PHP获取服务器信息 MySql版本和浏览器信息

PHP获取服务器信息 MySql版本和浏览器信息 1、$_SESSION[ PHP_SELF ] -- 获取当前正在执行脚本的文件名 2...

7

smarty 截取字符串函数 truncate的用法

smarty 截取字符串函数 truncate的用法 smarty truncate 截取字符串,从字符串开始处截取某长度的字符,默认的长度为8...

8

php编程常用函数方法等

php编程常用函数方法等 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站...

9

如何让ThinkPHP的模板引擎达到最佳效率

如何让ThinkPHP的模板引擎达到最佳效率 默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎。内置模板引擎支持模板文...