静态方法、属性,构造、析构方法

在定义属性的时候,前面加上关键字:static,此时就是静态属性。
class C1{
static $v1=10;
}
静态属性作用
对比来说:一般属性,他的值是隶属于该类的具体某个对象(虽然定义在类中),或者说,每个对象的同样的属性的值,有可能不一样。
静态属性就是:只隶属于类本身——也可以看做是所有对象的“共有数据”。
静态属性的使用:
通过特殊的语法:::(双冒号语法,也叫范围解释符)
类::$静态属性名;
对比普通属性的使用:
对象->普通属性名;
class C1{
static $v1=10;
}
C1::$v1=100;
echo "s1=$s1";

静态方法
如果在一个方法的前面加上static关键字修饰,则就变成了静态方法。
静态方法同样隶属于类,而不是隶属于具体对象。使用方法跟静态属性类似:
类名::静态方法名();
从理念上,可以认为,静态方法是只隶属于类,而为所有对象所“共有”。
如果通过类名来调用静态方法,则该方法中不可以出现$this关键字。
$this在静态方法中不能使用。静态方法中不应调用非静态方法。
class s1{
public $v1=1;
static function show(){
echo"v1= ".$this->v1;//报错
}
}
s1::show();
self:
含义:代表当前类
使用:通常只能在某个类的某个方法内部代表该类的名称。

构造方法
构造方式是类中的一个“特殊”方法,其作用是在实例化一个对象的同时,给该对象的属性赋值,使之一创建完成,就具有了其本身的特有数据(属性值)。
  该方法名字是固定的,为:__construct();
  该方法必须是普通方法(不能是静态方法)
  通常该方法应该是public
  通常该方法中使用$this这个关键字来对属性进行赋值
  当new 类名()的时候,其实是在调用该构造方法
  如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配

析构方法
构造方法是“创建”对象的时候会自动调用。
析构方法是“销毁”对象的时候会自动调用。
系统方法通常用于在销毁对象的时候来“清理数据”(打扫战场)——如果需要,就可以利用这个机会去处理。
通常,php程序结束后,所有对象都会自动销毁(其实属于php内部的垃圾回收机制)
析构方法通常不太需要去定义。
析构方法不能调用。
析构方法不能有形参。
析构方法中可以用于清理一些在php代码结束后不能清理的数据,如生成的文件。
对象销毁的几个情形:
脚本程序运行结束,自动销毁;
明确地unset()一个对象变量,则被销毁;
改变对象变量的值,被销毁;
实际上,更本质来说,当一个对象(new 出来的对象)没有任何一个变量指向它的时候,该对象就会被自动销毁——自然,如果整个程序结束,也会销毁。

猜你喜欢

转载自www.cnblogs.com/wjwap/p/10535116.html
今日推荐