关于什么时候使用静态方法的一些总结http://blog.csdn.net/BossDarcy/archive/2010/11/21/6025288.aspx 简单的php接口类对象的代码<?php //定义接口 interface demo{ //const NAME='BossDarcy';//设置字符串常量 function f1(); function f2();//方法全部要为抽象的方法 }// the end of interface class realone implements demo{ //应用接口,方法必须具体化重写 function f1(){ echo "I love Google!","<br>"; } function f2(){ echo 'My sina miniblog <a href="http://t.sina.com.cn/androidyue" target="_blank">Android月</a>'; } } //实例化类,然后调用方法 $r=new realone(); $r->f1(); $r->f2(); ?>
static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法。因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用。
static的属性,在内存中只有一份,为所有的实例共用。
使用self:: 关键字访问当前类的静态成员。
一个类的所有实例,共用类中的静态属性。也就是说,在内存中即使有多个实例,静态的属性也只有一份。
具体代码可参考下这个文章,我就不贴了
http://developer.51cto.com/art/200911/164568.htm
这样用的还是MYSQL的数据库连接池,PHP中的STATIC不同于C#中的STATIC,它并没有程序全局的功能
恩 。。达不到java他们这样的效果,但是可以把资源静态操作
简单的php接口类对象的代码<?php
//定义接口
interface demo{
//const NAME='BossDarcy';//设置字符串常量
function f1();
function f2();//方法全部要为抽象的方法
}// the end of interface
class realone implements demo{
//应用接口,方法必须具体化重写
function f1(){
echo "I love Google!","<br>";
}
function f2(){
echo 'My sina miniblog <a href="http://t.sina.com.cn/androidyue" target="_blank">Android月</a>';
}
}
//实例化类,然后调用方法
$r=new realone();
$r->f1();
$r->f2();
?>
其实类的成员和方法完全可以全部使用静态,特别是单例模式,单例模式下可以认为对象==类,已经没所谓实例化不实例化了,类就是对象,对象就是类本身。所以可以全部用静态。
在不能使用单例模式的场合则不要用静态成员,随之与非静态成员相关的方法也不能使用静态方法。
比如class Point{},这个最好不要用静态成员,因为一个运行时内可能要创建多个Point对象,然后计算它们之间的距离之类。
总之要用多态就不要静态成员;要用单例就最好用静态成员,降低开销,提高速度,不过对“多态”这个概念没有深究,是不是与“单例”相对也不得而知,在这里主要代表“单例”的反面。
至于单例为什么还要用类?答:仅仅为了封装。否则跟一般的面向过程没有区别。