PHP中普通属性和静态属性

普通属性(实例属性):

实例的单词为:instance

实例,其实也叫做“对象”;

普通(实例)属性,就是一个可以在该类实例化出的对象上使用的属性!

定义形式:

class  类名{

var  $属性名  =  初始值;

var  $属性名; //这个属性没有初始值;

//上述的var 还可以使用public来代替,比如:

public  $属性名  =  初始值;

public  $属性名; //这个属性没有初始值;

}

使用形式:

是通过该类的对象,来使用普通属性(实例属性):

$对象->属性名;

因为,属性的本质就是变量,则其就可以当做一个变量来看待和使用,比如:

$v1 = $对象->属性名;

echo  $对象->属性名;

$v2 = $对象->属性名 * 3 + 5; //进行计算

静态属性:

静态属性,本质上也是“变量”,但其有一个特点就是:该变量只隶属于“类”,即:

一个类中的一个静态属性,就只有“一份数据”;

但:

一个类中的一个实例属性,就可以有“多份数据”——每创建一个对象出来,就会有一份数据;

定义形式:

class  类名{

static   $属性名  =  初始值;

static   $属性名; //这个属性没有初始值;

}

使用形式:

使用类名和范围解析符(::)来对静态属性进行操作:

类名::$静态属性名; //注意:属性名带$符号

对比1:

常量的使用:类名::常量名;

对比2:

实例属性的使用:对象名->实例属性名; //注意:属性名不带$符号

结果为:

可见:

1,实例属性,是每个对象都可以不一样的数据,也是每个对象都“独自拥有”的数据;

2,静态属性,他不属于任何一个对象,而只属于该类本身,也可以理解为为所有对象所共有的数据;

时间: 2024-10-19 23:29:10

PHP中普通属性和静态属性的相关文章

php父类中访问子类的静态属性

在类中,我们可以通过self访问本类或父类中的静态属性/静态方法,可以通过parent访问父类中的静态属性/静态方法. 可我们却没有关键字从父类中的方法访问子类的静态属性,这是由于父类是先于子类创建的,所以从逻辑上来讲从父类中访问子类的静态属性并不是一个好的选择. 但有些时候我们不得不这样做,那么我们可以通过get_class()方法实现: get_class()返回的是本对象名, get_class(obj)返回的是对象obj的名, 看下面这个例子: <?php class A {    fu

38属性的种种,只读只写属性、自动属性、静态属性、抽象属性、接口属性

□ 只读属性 public class Example {     string name;     public string Name     {         get {return name;}     } } □ 只写属性 public class Example {     string name;     public string Name     {         set {name = value;}     } } □ 可读可写属性 public class Examp

13 PHP 对象基础 属性 方法 静态属性方法 this self 构造方法 学习 析构方法

面向对象思想介绍 OOP:Object Oriented Program面向对象编程. 传统的面向过程 将要完成的工作,分作若干个步骤,或再细分为子步骤,然后后步骤从前往后一步一步完成,最初达致目标. 现代的面向对象 将要完成的工作拆分为"一个一个对象"的任务(功能),每个对象独自完成自己的任务,任务之间的链接通过"调用"来实现,最终也完成了整体的工作. 万事万物都是对象. 面向对象是设计思想的"升华"--面向过程是解决简单问题的自然的思维过程,

第174天:面向对象——公有属性、私有属性和静态属性

一.公有属性和私有属性 1 //对象构造函数 2 //私有属性好处: 安全 就类似闭包中的函数一样 减少污染 3 function Person(name){ 4 //私有属性,只能在对象构造函数内部使用 5 var className = "用户对象"; 6 //公有属性,在对象实例化后调用 7 this.name = name; 8 //私有方法 9 var privateFunction = function(){ 10 alert(this.name); //公有属性 11 a

JavaScript面向对象(二)——成员属性、静态属性、原型属性与JS原型链

前  言 上一篇博客(https://www.cnblogs.com/qdjianghao/p/10177360.html )中,我们介绍了JS中的面向对象,并详细的解释了this的指向问题.本篇博客,我们继续来学习JS的面向对象.来深入理解一下JavaScript OOP中的成员属性/方法.静态属性/方法.原型属性/方法,并且一起来探讨一下JS中的原型与原型链. 一 成员属性与成员方法 在构造函数中,通过this.属性声明.或者实例化出对象后,通过"对象.属性"追加的.都属于成员属性

php中常量 const属性,静态属性,静态的函数方法

<?php//php中的常量define('MYNUM', 2000);echo MYNUM.'<br>';if(!defined('MYNUM')){ define('MYNUM', 4000);}echo MYNUM;//类内声明及使用class TestConst { const COUNTRY = 'China'; //const不能加public, static也不需要$, 变量名称大写 static $static = 'Static'; public function ge

JS中的实例方法、静态方法、实例属性、静态属性

一.静态方法与实例方法的例子: 我们先来看一个例子来看一下JS中的静态方法和实例方法到底是什么? 静态方法: function A(){} A.col='red'  //静态属性 A.sayMeS=function(){ console.log("Hello World S!"); } A.sayMeS();//输出Hello World S! 实例方法: function A(){ this.Color="yellow"  //实例属性 } A.prototype

WPF中多窗口共享静态属性

由于我的DoubanFm在重新考虑之后,需要设置一个全局的CurrentSong,这个字段要让所有的VM都知道,而我同时又想把它作为我所有VM的共有属性.而且我想尽量减少代码的复制,提高重用.所以我做了以下的工作:(下面是我在WPF中的测试) 首先我们得熟悉MVVMlight框架 然后: (1)基类 一.抽象的VM的基类 abstract class MainViewModel : ViewModelBase 二.私有静态,公有非静态暴露,还有关键点:在属性更改之后用  RaisePropert

calendar中set方法和静态属性带来的坑

坑在哪里: 在我之前接触的一个项目中涉及到这么一项功能:每天00:00:00把某些数据移动到mongodb数据库的另一个集合中,也就是关系型数据库的表中.这个集合名是一个固定的名称加上当前的两个月前的日期所在的年和月份. 这个功能是在我接触这个项目之前就已经存在,也就是之前的同事实现的功能,写了一个java的定时任务. 那个同事如今已经不在我们公司了,但是最近却发现这个功能有些问题,数据的移动并不像预计那样,原本应该存在2月的数据却出现在了1月的表中. 坑的根源: mongodb相关的问题暂时归