静态属性


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

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

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

静态属性是只会被初始化一次,之后的每次调用都会使用原来的值。
例子:
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. JAVA设计模式 之 策略模式

    一. 定义 设计模式定义了算法族,分别封装起来,让他们之间可以互相替代,此模式让算法的变化独立于使用算法的客户(该定义来自于Head First 设计模式). 二. 应用场景 当我们在应用程序中完成一 ...

  2. Tomcat7优化配置

    导读 Tomcat在使用的过程中会遇到很多报错,有些是程序的报错,但还有一部分是tomcat本身的报错,我们可以通过优化tomcat的初始配置来提高tomcat的性能.Tomcat的优化主要体现在两方 ...

  3. 在Linux上配置无线网络

    导读 iwconfig是Linux Wireless Extensions(LWE)的用户层配置工具之一.LWE是Linux下对无线网络配置的工具,包括内核的支持.用户层配置工具和驱动接口的支持三部分 ...

  4. HDNOIP普及+提高整合

    好久没有更新博客了...这几天一直在切 HDNOIP... 正式时跪惨了...所以考完后回来奋力切出了所有题. [COJ3351]HDNOIP201601回文质数 试题描述 回文数是具有对称性的自然数 ...

  5. linux中chmod更改文件权限命令

    1. 命令格式: chmod [-cfvR] [--help] [--version] mode file 2. 命令功能: 用于改变文件或目录的访问权限,用它控制文件或目录的访问权限. 3. 命令参 ...

  6. git 教程(12)--分支管理

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  7. php preg_库正则匹配

    <?php //preg_库提供的正则 preg_match();//进行正则表达式匹配 /* preg_match (pattern , subject, matches) 参数 描述 pat ...

  8. Panabit安装配置笔记

    最近研究了linux下基于FREEBSD的开源流控软件Panabit,感觉功能还不错,单位公司如果经费不足的朋友需要做内网流控可以使用这款软件,最新免费版ISO镜像仅支持网桥模式和旁路模式,256个并 ...

  9. Shortest Palindrome

    Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. ...

  10. 基于bshare分享平台,在一个页面上实现多个不同内容的web分享

    <!--引入bshare SDK--><script type="text/javascript" charset="utf-8" src=& ...