静态属性


所谓静态属性,也就是这个属性对于这个类来说是唯一的,不管有多少个对象,只要它引用了一个静态对象,那么这些对象引用出来的值肯定是同一个。

静态变量不能使用->这种箭头符号,而是使用::这种作用域符号。
我们可以直接使用“类名::静态属性名”的格式访问静态属性。

从内存上来看,静态属性和普通属性并不使用同一块内存,这也就决定了它天生就有一点特殊。

静态属性是只会被初始化一次,之后的每次调用都会使用原来的值。
例子:
class star{
static public $count=1;
function __construct(){
echo "这是第",self::$count;
echo "次实例化","

";
self::$count +=1;
}
}
$xin=new star();
$mao=new star();
$xi=new star();

在类的内部,我们使用 self::静态属性名 这种格式去访问它们。
我们在构造函数中直接调用静态属性$count,而且每次该函数被调用的时候,同时执行一个自增操作,也就是次数加一。
执行结果为:
这是第1次实例化

这是第2次实例化

这是第3次实例化


这里由于该属性是静态的,它只会被初始化一次,之后再次调用的时候就会变成自增。
如果我们把相应的静态属性换成普通属性
例子:

class star{

public
$count=1;
function
__construct(){
echo
"这是第",$this->count;
echo
"次实例化","

";
$this->count +=1;
}
}
$xin=new
star();
$mao=new
star();
$xi=new
star();
执行结果为:
这是第1次实例化
这是第1次实例化
这是第1次实例化

普通属性在每次实例化的时候都会被重新赋值一次,也就是说$this->count
得到的结果始终是1,因为它被重新赋值了N次。


静态方法

所谓静态方法,就是这个方法是属于这个类的,我们可以在不实例化任何对象的时候调用它。
对于静态方法我们要重点关注它的三个特点:
1,如何声明一个静态方法
2,如何去调用这个静态方法
3,静态方法可以干什么不可以干什么

class
star{
static function team($name){
echo "队伍核心成员:";
echo $name;
echo "

";
}
}
star::team("罐罐");
$guan=new star();
$guan->team("萌罐罐");

输出结果为:
队伍核心成员:罐罐

队伍核心成员:萌罐罐


1,声明定义一个静态函数很简单,它只需要在function前面加一个static关键字就可以了。
2,调用静态方法可以使用
“类名::静态函数名”的格式去调用,也可以直接实例化一个变量,然后使用变量名->函数名的方法调用。
3,由于静态方法不需要类的实例化就能够被调用,而普通方法和普通属性都必须先声明一个对象才可以访问,因此,在静态方法里面始终是不能使用普通方法和访问普通变量的。

关于静态方法要牢牢记住一点:“静态方法是属于整个类的。”

PHP面向对象——静态属性和静态方法的更多相关文章

  1. php面向对象中static静态属性和静态方法的调用

    这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态 ...

  2. PHP static静态属性和静态方法

    这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了.静态属性.方法(包括静态与非静态)在内 ...

  3. static静态属性和静态方法的原理与调用技巧

    这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下     本文实例讲述了php中static静态属 ...

  4. php静态属性和静态方法

    php静态属性和静态方法 2012-09-29 10:18 1518人阅读 评论(0) 收藏 举报 phpfunction 本php教程主要是学习php中静态属性和静态方法的使用方法和基本的示例. · ...

  5. PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

      前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象 ...

  6. PHP使用static关键字声明静态属性和静态方法

    PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...

  7. ES6——静态属性与静态方法

    静态方法只能写在class内,constructor外.通过static关键字声明 静态属性只能写在class外,通过 类名.属性名 = 属性值 声明 //静态属性与静态方法(ES6明确规定,Clas ...

  8. Python之路(第二十三篇) 面向对象初级:静态属性、静态方法、类方法

    一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子 class R ...

  9. Python之路系列:面向对象初级:静态属性、静态方法、类方法

    一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子: class ...

随机推荐

  1. 淘宝(阿里百川)手机客户端开发日记第一篇 android 主框架搭建(一)

    android 主框架搭建(一) 1.开发环境:Android Studio 相继点击下一步,直接项目建立完毕(如下图) 图片看的效果如果很小,请放大您的浏览器显示百分比  转载请注明http://w ...

  2. iOS开发——项目篇—高仿百思不得姐

    01 一.包装为导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewControll ...

  3. web安全及防护

    本文将对web方面的安全问题以及相应的防护方法进行一个简单的介绍. SQL注入(SQL Injection) 原理:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺 ...

  4. 如何优雅地使用 Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比 于难于上手的Vim,浮肿沉重的Ecli ...

  5. 两轮自平衡小车双闭环PID控制设计

                                                                                            两轮自平衡小车的研究意义 ...

  6. MySQL 中根据A表的ID查询B表数据

    例1:查询某个文章及其对应的评论(单个详情) ) FROM A; 例2:查询分类表中,每种分类各包含多少商品(汇总) SELECT category_id, (SELECT count(goods_i ...

  7. 【云计算】Cloudify-基于TOSCA规范的开源云应用编排系统

      .cloudify-manager-blueprints:https://github.com/cloudify-cosmo/cloudify-manager-blueprints/tree/3. ...

  8. JavaScript——exec和match

    题目17:Read the following javascript code: var someText="web2.0 .net2.0";var pattern=/(\w+)( ...

  9. poj 1611(并查集)

    http://poj.org/problem?id=1611 题意:有个学生感染病毒了,只要是和这个学生接触过的人都会感染,而和这些被感染者接触的人,也会被感染,现在给定你一些协会的人数,以及所在学生 ...

  10. python操作Excel文件

    参考: http://www.cnblogs.com/tianyajuanke/p/4048844.html http://blog.chinaunix.net/uid-24701781-id-334 ...