四、类的方法:
理解成类当中的函数即可。
调用:
1、内部调用:可使用
$this
->Fanname();或
$this
->addab()或 test::addab();
2、实例化调用时,用
$e
->addab();即可。对于在该方法中没有使用
$this
关键字的,如上例中
的:
function
addab() {
return
$this
->a+
$this
->b; }
改为:
function
addab() {
return
25; }那在在外部实例调用该方法,也可用“
$e
::addab();”或
“test::addab();”
五、类的常量:
如果类的属性理解成类中的变量,那么类的常量和变量是不一样的,其定义方法为:
代码如下
:
class
test{
private
$a
;
const
PI = '3.14′;
…..
//在类中调用上面的常量用两种方法,“$this::PI”,或 “类名::PI”,这里就是 test::PI,如下:
function
getvalue(){
return
$this
->a *
$this
::PI;
//或$this->a * test::PI,用 this 关键字或类名均可,但都要用双冒号。
}
}
$e
=
new
test();
$e
->PI =5;
//注意,这里用 ->只是创造了一个也是名为 PI 的属性,而不是改变类中的 PI 常
量的值。
echo
$e
::PI;
//这个才是调用类的常量。
常量只能用双冒号
::来调用。并且不能更改其值。
在类外部实例化后调用类常量同样也有两种方法。方法为:
“
$e
::PI” 或 “test::PI”,共同点是都要用冒号,不同点是外部不能用 this 关键字,只能用实例
名,但类名
::PI 是通用的。
六、类的静态成员(静态属性或静态方法):
如果需要创建供所有类的实例共享的字段或方法。就得用静态成员。有两个特征:
1、静态成员是共产主义者,它让脚本上的所有该类的实例调用,但不能借助类的特定实例
名调用,而是在类的外部,统一使用
“类名::$成员名”的方式调用。而类的内部则统一使用
“self::$成员名”来调用。
2、当每一次新创建实例时,静态成员会从上次创建的实例最后值开始重新计算,而不是类
中初始的值开始计算。
3、对于用
public
定义的静态成员,可以在外部更改它的值。
private
等则不行。
代码如下
:
class
test{
public
static
$v
= 0;
function
__construct(){ self::
$v
++; }