PHP类和对象之Static静态关键字

静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。

class Car {
private static $speed = 10; public static function getSpeed() {
return self::$speed;
}
}
echo Car::getSpeed(); //调用静态方法

静态方法也可以通过变量来进行动态调用

 $func = 'getSpeed'; $className = 'Car'; echo $className::$func(); //动态调用静态方法 

静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。

class Car {
private static $speed = 10; public static function getSpeed() {
return self::$speed;
} public static function speedUp() {
return self::$speed+=10;
}
}
class BigCar extends Car {
public static function start() {
parent::speedUp();
}
} BigCar::start(); //不需要实例化对象,就能访问静态方法
echo BigCar::getSpeed();

定义一个静态方法,实现速度累加10。

<?php
class Car {
private static $speed = 10; public function getSpeed() {
return self::$speed;
} //在这里定义一个静态方法,实现速度累加10 public static function speedUP(){
return self::$speed+=10;
} } $car = new Car();//实例化一个对象
Car::speedUp(); //调用静态方法加速
echo $car->getSpeed(); //调用共有方法输出当前的速

总结一下:

1.静态属性用于保存类的公有数据;

2.静态方法里面只能访问静态属性;

3.静态成员不需要实例化对象就可以访问;

4.类的内部可以通过self和static关键字访问自身静态成员

5.可以通过parent关键字访问父类的静态成员

6.可以通过类名称定义一个公共方法在外部访问静态成员

php笔记(二)PHP类和对象之Static静态关键字的更多相关文章

  1. Java学习笔记(二)——类和对象

    [1]类是模子,确定对象将会拥有的特征(属性)和行为(方法). [2]类的特点:类是对象的类型: 具有相同属性和方法的一组对象的集合. [3]属性:对象具有的各种特征(每个对象的每个属性都拥有特定值) ...

  2. 【Head First Java 读书笔记】(二)类与对象

    前篇当中,代码都放在main()里面,那根本不是面向对象的做法. 椅子大战(对象如何改变你的一生) 程序规格: 在图形接口画出四方形,圆形和三角形,当用户点选图形时,图形需要顺时针转360度并依据形状 ...

  3. python cookbook第三版学习笔记十:类和对象(一)

    类和对象: 我们经常会对打印一个对象来得到对象的某些信息. class pair:     def __init__(self,x,y):         self.x=x         self. ...

  4. C++之再续前缘(二)——类和对象(上)

    1.类的构成:数据和函数 public:可以由在类外由类的对象访问 private:只能由类内的成员函数访问 protected:可以由本类的成员函数访问,也可以由本类的派生类的成员函数访问 访问权限 ...

  5. Objective-C(二、类和对象)

     类和对象 #import是include的升级版,可以自动防止重复包含,所以注意:大家以后在引入头文件的时候都使用import Foundation是一个框架,Foundation.h是Founda ...

  6. Scala 编程(二)类和对象

    类,字段和方法 类是对象的蓝图.一旦定义了类,就可以用关键字new从类的蓝图里创建对象,类的定义: class ChecksumAccumulator { // class definition go ...

  7. 从零开始学java(二)类与对象

    面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为. 类是对象的抽象,对象是类的具体实例. 1.构造一个类,让其拥有属性和方法 ...

  8. [javase学习笔记]-6.2 类与对象的关系

    这一节我们来看一下类与对象之间的关系. 我们学习java语言,目的就是用java语言对现实生活中的事物进行描写叙述.那么我们如何来描写叙述呢.这就引出了类,我们在实际实现时,是通过类的形式来体现的. ...

  9. ibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页

    一.实体类或属性名与数据库关键字冲突问题1.实体类名与数据库中的关键字冲突比如:实体表User与oracle中的系统表冲突解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等 ...

随机推荐

  1. 利用servicestack连接redis

    利用servicestack连接redis 引言:作为少有的.net架构下的大型网站,stackoverflow今日发表了一篇文章,介绍了其技术体系,原文链接http://highscalabilit ...

  2. 瀑布流,五大插件一个都不少Bootstrap+jQuery+Masonry+imagesLoaded+Lightbox!

    纯手工打造漂亮的瀑布流,五大插件一个都不少Bootstrap+jQuery+Masonry+imagesLoaded+Lightbox!   前两天写的文章<纯手工打造漂亮的垂直时间轴,使用最简 ...

  3. TFTP:简单文本传输协议,BOOTP:引导程序协议

    TFTP:简单文本传输协议,BOOTP:引导程序协议 1.TFTP:      TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用 ...

  4. linux history 命令详解

    linux history 命令详解 显示命令执行时间 linux shell 具有history 功能,即会记录已经执行过的命令,但是默认是不显示命令的执行时间,命令的执行时间,history 已经 ...

  5. 将SQL获取的信息传递到Email中

    将SQL获取的信息传递到Email中 最近在为公司财务开发一个邮件通知时遇到了一个技术问题.原来我设计SSIS的是每天将ERP系统支付数据导出到财务支付平台后 Email 通知财务,然后财务到支付平台 ...

  6. HTML5 拖放及排序的简单实现

    HTML5 拖放及排序的简单实现 之前写过个类似的例子,看这里. 但想再深入一步,希望能通过拖放,来交换二个元素的位置.最好有应用到手机平台上. 作了个简单的例子,在手机上测试的时候不成功..查了好多 ...

  7. 前端MVVM框架avalon - 模型转换1

    轻量级前端MVVM框架avalon - 模型转换(一) 接上一章 ViewModel modelFactory工厂是如何加工用户定义的VM? 附源码 洋洋洒洒100多行内部是魔幻般的实现 1: fun ...

  8. 两个80c51单片机之间怎样进行串行通信

    以前以为串行通信只能是单片机和PC机之间进行通信,昨天无意之中看到一个程序,是单片机和单片机之间进行通信..这小东西真是神奇啊!昨天弄了很长时间没弄出来,今天在大神的帮助下终于拨开云雾见天日了. 案例 ...

  9. 通过qsort(void * lineptr[], int left, int rifht, int (*comp)(void *, void *))解读指针函数和void指针

    原函数是<The C programint  language >5.11文本行排序的程序,如下: void qsort(void *v[], int left, int right, i ...

  10. .Net程序员学用Oracle系列(1):导航目录

    本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇 ...