面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持。如何使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都是非常有意义的。下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法。
我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境。和其他编程语言有所不同的是,在PHP中,操作数据库的是一系列的具体功能函数(如果你不使用ODBC接口的话)。这样做虽然效率很高,但是封装却不够。如果有一个统一的数据库接口,那么我们就可以不对程序做任何修改而适用于多种数据库,从而使程序的移植性和跨平台能力都大大提高。
一、php面向对象的简单列子
以人为列子:
<?phpheader("Content-type: text/html; charset=utf-8");class person{//下面是人的成员属性var <span>!本文来源gaodai#ma#com搞*!代#%^码网5</span><pre>搞gaodaima代码
$name;//人的名字var $sex;//人的性别var $age;//人的年龄//定义一个构造方法参数为姓名$name,性别$sex和年龄$agefunction construct($name,$sex,$age){//通过构造方法传进来的$name给成员属性$this->name赋初始值$this->name=$name;//通过构造方法传进来的$sex给成员属性$this->sex赋初始值$this->sex=$sex;//通过构造方法传进来的$age给成员属性$this->age赋初始值$this->age="$age";}//下面是人的成员方法function say()//这个人可以说话的方法{echo "我的名字叫:".$this->name."性别;".$this->sex."我的年龄是:".$this->age."<br>";}function run() //这个人可以走路的方法{echo "这个人在走路";}//这是一个析构函数,在对象销毁前调用function destruct(){echo "再见".$this->name."<br>";}}//通过构造方法创建3个对象$p1,$p2,$p3,分别传入三个不同的实参为姓名性别和年龄$p1=new person("小明","男",20);$p2=new person("熊","女",30);$p3=new person("向日葵","男",25);$p1->say();$p2->say();$p3->say();//下面访问3个对象的说话方式$p1->say();$p2->say();$p3->say();?>
二、php面向对象的几个步骤
第一类的定义:
<?php Class myobject{ //……}?>
第二成员方法:
<?phpclassmyobject{ function getobjectname($name){ echo "商品名称为:".$name; }}?>
第三类的实例化:
<?phpclass myobject{ function getobjectname($name){ echo "商品名称为:".$name; }}$c_book=new myobject(); //实例化对象echo $c_book->getobjectname("计算机图书"); //调用getbookname()方法?>
第四成员变量:
<?phpclass myobject{ public $object_name; functionsetobjectname($name){ $this->object_name=$name; } functiongetobjectname(){ return$this->object_name; }}$c_book=new myobject();$c_book->setobjectname("计算机图书");echo $c_book->object_name."<br>";echo $c_book->getobjectname();?>
第五常量类:
既然有变量,当然也会有常量了。常量就是不会改变的量,是一个恒值。众所周知的一个常量就是圆周率Pi。定义常量使用关键字const如:
ConstPI=3.14159;
例:
<?phpclass myobject{ const book_type="计算机图书"; //声明常量book_type public $object_name; //声明变量 functionsetobjectname($name){ //声明方法setobjectname() $this->object_name=$name; //设置成员的变量值 } functiongetobjectname(){ //声明方法getobject() return$this->object_name; }}$c_book=new myobject(); //实例化对象$c_book->setobjectname("PHP的类"); //调用方法setobjectnameecho myobject::book_type."<br>"; //输出常量的值echo $c_book->getobjectname(); //调用方法getobjectname?>