php(类)面向对象的写法.doc

上传人:ni****g 文档编号:558877568 上传时间:2023-09-14 格式:DOC 页数:7 大小:97.50KB
返回 下载 相关 举报
php(类)面向对象的写法.doc_第1页
第1页 / 共7页
php(类)面向对象的写法.doc_第2页
第2页 / 共7页
php(类)面向对象的写法.doc_第3页
第3页 / 共7页
php(类)面向对象的写法.doc_第4页
第4页 / 共7页
php(类)面向对象的写法.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《php(类)面向对象的写法.doc》由会员分享,可在线阅读,更多相关《php(类)面向对象的写法.doc(7页珍藏版)》请在金锄头文库上搜索。

1、学习php(类)面向对象的写法、介绍、基础入门1.对属性或方法的访问控制,是通过在前面添加关键字 public、protected 或 private 来实现的。由 public 所定义的类成员可以在任何地方被访问;由 protected 所定义的类成员则可以被其所在类的子类和父类访问(当然,该成员所在的类也可以访问);而由 private 定义的类成员则只能被其所在类访问。对类成员的访问控制类成员都必须使用关键字public、protected 或 private 进行定。2.属性: 通过在类定义中使用关键字 var 来声明变量,即创建了类的属性,虽然在声明成员属性的时候可以给定初始值,但是

2、在声明类的时候给成员属性初使值是没有必要的,比如说要是把人的姓名赋上“张三”,那么用这个类实例出几十个人,这几十个人都叫张三了,所以没有必要, 我们在实例出对象后给成员属性初始值就可以了。如:var $somevar;方法(成员函数):通过在类定义中声明函数,即创建了类的方法。如:function somefun(参数列表) . . 3.5.如何实例化对象 我们上面说过面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对象了。当定义好类后,我们使用new关键字来生成一个对象。$对象名称 = new 类名称();对象-属性 $p1-name; $p2

3、-age; $p3-sex;对象-方法 $p1-say(); $p2-run();5.7.特殊的引用“$this”的使用现在我们知道了如何访问对象中的成员,是通过“对象 -成员”的方式访问的,这是在对象的外部去访问对象中成员的形式,那么如果我想在对象的内部,让对象里的方法访问本对象的属性,或是对象中的方法去调用本对象的其它方法这时我们怎么办?因为对象里面的所有的成员都要用对象来调用,包括对象的内部成员之间的调用,所以在PHP里面给我提供了一个本对象的引用$this, 每个对象里面都有一个对象的引用$this来代表这个对象,完成对象内部成员的调用, this的本意就是“这个”的意思,上面的实例里

4、面,我们实例化三个实例对象$P1、 $P2、 $P3,这三个对象里面各自存在一个$this分别代表对象$p1、$p2、$p3 。name. 性别:.$this-sex. 我的年龄是:.$this-age.;8.构造方法与析构方法大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法。 构造函数的声明与其它操作的声明一样,只是其名称必须是_construct( )。这是PHP5中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5中仍然可以用,但现在以经很少有人用了,这样做的好处是可以使构造函数独

5、立于类名,当类名发生改变时不需要改相应的构造函数名称了。飞,飞Asp技术乐园为了向下兼容,如果一个类中没有名为_construct( )的方法,PHP将搜索一个php4中的写法,与类名相同名的构造方法。格式:function _construct ( 参数 ) . . 在一个类中只能声明一个构造方法,而是只有在每次创建对象的时候都会去调用一次构造方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务。飞飞Asp技,术乐园比如对成属性在创建对象的时候赋初值。name赋初使值$this-name=$name;/通过构造方法传进来的$sex给成员属性$this-sex赋初使值$this-

6、sex=$sex;/通过构造方法传进来的$age给成员属性$this-age赋初使值$this-age=$age;/这个人的说话方法function say()echo 我的名子叫:.$this-name. 性别:.$this-sex. 我的年龄是:.$this-age.;/通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄$p1=new Person(“张三”,”男”, 20);$p2=new Person(“李四”,”女”, 30);$p3=new Person(“王五”,”男”, 40);/下面访问$p1对象中的说话方法$p1-say();/下面访问$

7、p2对象中的说话方法$p2-say();/下面访问$p3对象中的说话方法$p3-say();?输出结果为:我的名子叫:张三 性别:男 我的年龄是:20我的名子叫:李四 性别:女 我的年龄是:30我的名子叫:王五 性别:男 我的年龄是:40与构造函数相对的就是析构函数。析构函数是PHP5新添加的内容,在PHP4中没有析构函数。析构函数允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件,释放结果集等,析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行,也就是对象在内存中被销毁前调用析构函数。与构造函数的名称类似,一个类的析构函数名称必须是_destruct( )。析构

8、函数不能带有任何参数。格式:function _destruct ( ) . . 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.;/这是一个析构函数,在对象销毁前调用function _destruct()echo “再见”.$this-name

9、.”;如果给类外部提供接口,可以为私有属性在类外部提供设置方法和获取方法,来操作私有属性.例如: prvate $age; /私有的属性年龄function setAge($age) /为外部提供一个公有设置年龄的方法if($age130) /在给属性赋值的时候,为了避免非法值设置给属性return;$this-age=$age;function getAge() /为外部提供一个公有获取年龄的方法return($this-age);上面的方法是为一个成员属性设置和获取值, 当然你也可以为每个属性用同样的方法对其进行赋值和取值的操作,完成在类外部的存取工作。JAVABEAN是一样的!10._s

10、et() _get() _isset() _unset()四个方法的应用一般来说,总是把类的属性定义为private,这更符合现实的逻辑。但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“_get()”和“_set()”来获取和赋值其属性,以及检查属性的 “_isset()”和删除属性的方法“_unset()”。上一节中,我们为每个属性做了设置和获取的方法,在PHP5中给我们提供了专门为属性设置值和获取值的方法,“_set()”和“_get()”这两个方法,这两个方法不是默认存在的,而是我们手工添加到类里面去的,像构造方法(_construct()一样, 类里面添加

11、了才会存在,可以按下面的方式来添加这两个方法,当然也可以按个人的风格来添加:/_get()方法用来获取私有属性private function _get($property_name)if(isset($this-$property_name) return($this-$property_name);else return(NULL);/_set()方法用来设置私有属性private function _set($property_name, $value)$this-$property_name = $value;_get() 方法:这个方法用来获取私有成员属性值的,有一个参数, 参数传入

12、你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用,因为我们也可以把这个方法做成私有的方法,是在直接获取私有属性的时候对象自动调用的。因为私有属性已经被封装上了,是不能直接获取值的(比如:“echo $p1-name” 这样直接获取是错误的),但是如果你在类里面加上了这个方法,在使用“echo $p1-name” 这样的语句直接获取值的时候就会自动调用_get($property_name)方法,将属性name传给参数$property_name,通过这个方法的内部执行,返回我们传入的私有属性的值。如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。_set()方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。这个方法同样不用我们手工去调用,它也可以做成私有的,是在直接设置私有属性值的时候自动调用的,同样属性私有的已经被封装上

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号