php静态变量
静态变量是只存在于函数作用域都得变量,不过,在函数执行完毕后,这种变量不会丢失,也就是说在下次调用该值时变量依然记得原来的值.
举例静态变量:
<?php
function forasp_cn(){
static $cn_psarof;
$cn_psarof++
echo $cn_psarof;
}
forasp_cn();//输出1
forasp_cn();//输出2
forasp_cn();//输出3
forasp_cn();//输出4
?>
类中静态元素中的使用,static在类中有两种用法,一种是定义静态成员,另一种是用来定义静态方法.
1.静态成员
静态成员是一种类变量,它属于类不属于类的某个实例.静态成员只保留一个值,而这个静态成员变量值对所有实例都是有效的.
举例说明静态成员:
<?php
class cn_psarof{
static $wangzhan=0;
function add(){
self::$wangzhan +=2;
}
function write(){
echo self::$wangzhan;//
}
}
$a = new cn_psarof();
$b = new cn_psarof();
$a->write();//输出0
$a->add();
$a->write();//输出2
$b->add();
$b->write();//输出4
?>
静态成员也可以属于父类,可以使用parent::在子类中访问,比如parent::$a;表示访问父类的$a静态变量(当然$a是已经定义的静态变量).
直接调用静态变量比如上面的类可以直接访问静态变量$wangzhan<?php echo cn_psarof::$wangzhan;?>
2.静态方法.静态方法和静态变量是相同的,使用static可以标记方法为静态方法,调用静态方法和调用静态变量一样,也可以通过域限定操作符调用
举例:
<?php
class wwwforaspcn{
static function writeurl(){
echo "this is http://www.forasp.cn";
}
}
echo wwwforaspcn::writeurl();//输出this is http://www.forasp.c
?>
这就是静态变量和静态方法,其中的域定义操作符::(双冒号)在下一次详细讲解.