Re: php class类用法总结
1、调用父类方法:在子类中调用父类的方法,有3种方法:
$this->ParentFunction(); 或
父类名::ParentFunction(); 或
parent::parentFun();
2、调用父类属性:只能用$this->ParentProperty;
(三)重载:
在子类中,可以定义与父类相同属性或方法,改变父类该属性或方法的值或操作,称做重载。如:
calss ParClass{ function pfun(){ ….}}
class ChildrenClass extends ParClass{function pfun(){ ….}}} //重载了父类的pfun的方法。
在子类中重载后,优先执行自己重载后的新定义的方法或属性。
也可以在子类中用parent::parentFun();调用父类的方法,但所得到的值是子类自己输入的参数运算值。而不是该方法在父类中运算的值。
三、接口:
接口:interface,可以理解成一组功能的共同规范,最大意义可能就是在多人协作时,为各自的开发规定一个共同的方法名称。
和抽象类中的抽象方法一样:
1、不能在接口中对方法具体实现进行定义。而是由具体类来实现(而抽象类中的非抽象方法可以不必再定义,只有抽象方法和接口是一样要求要在具体类中实现)。
2、和抽象类一样,可以在接口中定义常量,并由具体类直接继承。
3、具体类必须实现抽象类的所有抽象方法(非抽象方法除外),同样,具体类如通过implements实现了接口后,必须完成接口中的所有方法。
接口实现过程:1、定义接口,2、用..implement X,Y,…和具体类对接。
interface Info{ //定义接口
const N=22;
public function getage();
public function getname();
}
class age implements Info //如要多个接口 class age (extends emJob) implements Info,interB…
{
public $age=15;
public $name=’Join’;
function getage() {
echo “年级是$this->age”;
}
function getname() {
echo “姓名是$this->name”;
}
function getN(){
echo ‘<h3>在接口中定义的常量N的值是:’.$this::N.’ </h3>’; //直接继承接口中的常量值。
}
}
$age=new age;
echo $age::N; //22,直接调用接口中的常量值。
$age->getN();
关于抽象类和接口类的使用区分:何时用接口,何时用抽象?
1、相关性:当创建的模型由一些紧密相关的对象采用时,用抽象。对于不相关对象采用的功能,用接口。
2、多重继承:PHP类可以继承多个接口,但不能扩展多个抽象类。
3、公共行为实现:抽象类可在其中实现公共的方法,但接口不行。
四、命名空间(PHP6)
类库脚本A.inc.php和脚本B.inc.php中都一个类的名称为 class CNAME,并且这两个文件要在同一个文件如index.php中被调用。这时要用到命名空间。
步聚:
1、打开上面的A和B两个文件,分别在上面的最前面各加一行:
namespace SPACEA; 和 namespace SPACEB; 名字自定。
2、在index.php中实例化类时,在类的前面添加命名空间和双冒号做为前缀:
include ‘a.inc.php’;
include ‘b.inc.php’;
$a=new SPACEA::CNAME();
$b=new SPACEB::CNAME();
这样就不会冲突了。
但在PHP6正式发布前,这个功能还未定下来。
五、实现迭代器和迭代。
参《PHP圣经》P142;
六、使用Reflection(反射)API 。
简易实例:
class a{ …. }
$c = new ReflectionClass(‘a’); //PHP 内置类。
echo ‘<pre>’.$c.’</pre>’;
输出类a的结构和内容。参《PHP圣经》P145;
相关文章:
1、PHP描述冒泡排序和快速排序算法
http://www.onexin.net/php-description-o ... algorithm/
2、用C/C++扩展你的PHP 为你的php增加功能
http://www.onexin.net/cc-extensions-you ... -your-php/
3、PHP今天0点UNIX时间戳
http://www.onexin.net/php-0-clock-today-unixtime/
4、实用php性能分析工具XHProf(facebook)
http://www.onexin.net/php-practical-per ... -facebook/
5、提高PHP编程效率的53个要点
http://www.onexin.net/php-programming-t ... 53-points/
转载请注明出处:http://www.onexin.net/php-class-class-usage-summary/