本文实例分析了PHP面向对象程序设计方法。分享给大家供大家参考,具体如下:PHP5开始支持面向对象,示例如下:?<?php class classname{var $attr1;var $attr2;public $attribute;const PI = 3.14;// 构造函数function __construct($param = default){echo "Constructor called with parameter $param<br />";}// 析构函数function __destruct(){echo <br />destruct;}//function oper1(){echo oper1<br />;}function oper2($param)...
14.final 关键字的应用 这个关键字只能用来定义类和定义方法,不能使用final 这个关键字来定义成员属性,因 为final 是常量的意思,我们在PHP 里定义常量使用的是define()函数,所以不能使用final 来 定义成员属性。 使用final 关键标记的类不能被继承; 代码片段 final class Person{ … … } class Student extends Person{ } 会出现下面错误: Fatal error: Class Student may not inherit from final class (Person) 使用final ...
16.__toString()方法 我们前面说过在类里面声明“— ”开始的方法名的方法(PHP 给我们提供的),都是在 某一时刻不同情况下自动调用执行的方法,“__toString()”方法也是一样自动被调用的,是在 直接输出对象引用时自动调用的, 前面我们讲过对象引用是一个指针,比如说:“$p=new Person()”中,$p 就是一个引用,我们不能使用echo 直接输出$p,这样会输出“Catchable fatal error: Object of class Person could not be conver...
面向对象的概念面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,OOP达到了软件工程的三个目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。面向对象一直是软件开发领域内比较热门的话题,首先,面向对象符合人类看待事物的一般规律。其次,采用...
4.如何抽象出一个类?上面已经介绍过了,面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,所以我们首先要做的就是如何来声明类,做出来一个类很容易,只要掌握基本的程序语法定义规则就可以做的出来,那么难点在那里呢?一个项目要用到多少个类,用多少个对象,在那要定义类,定义一个什么样的类,这个类实例化出多少个对象,类里面有多少个属性,有多少个方法等等,这就需要读者通过在实际的开发中就实际问题分析设计...
5.如何实例化对象我们上面说过面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对象了。当定义好类后,我们使用new 关键字来生成一个对象。$对象名称= new 类名称(); <?php class Person { //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say() //这个人可以说话的方法 { echo "这个人在说话"; }f u...
7.特殊的引用“$this”的使用现在我们知道了如何访问对象中的成员,是通过“对象->成员”的方式访问的,这是在对象的外部去访问对象中成员的形式,那么如果我想在对象的内部,让对象里的方法访问本对象的属性,或是对象中的方法去调用本对象的其它方法这时我们怎么办?因为对象里面的所有的成员都要用对象来调用,包括对象的内部成员之间的调用,所以在PHP 里面给我提供了一个本对象的引用$this,每个对象里面都有一个对象的引用$th...
9.封装性封装性是面向对象编程中的三大特性之一,封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:1.把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。2.信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对...
这个模式理解起来会有些歧义,特别是某些书上面那些难懂的阐述。先来说说组合模式的几个特点:1、必须存在不可分割基本元素。2、组合后的物体可以被组合。举个通俗的例子,原子是化学反应的基本微粒,它在化学反应中不可分割。现在有 C(碳)、H(氢)、O(氧)、N(氮)4种原子,它们可以随机组合成无数种分子,可以是蛋白质,也可以是脂肪,蛋白质和脂肪就是组合。由蛋白质和脂肪又可以一起被组合成肉、大豆等等。回到主题,现在...
hp的全局变量给编程带来了很大的灵活性,但全局变量的不受约束性也带来了很大的隐患。单例模式可以很好的替代全局变量。假设有一朵花,每个人见到都会去浇花,然后再欣赏它。class flower{function __construct(){echo date(Y-m-d H:i:s).浇了花;}public function look(){return 一朵美丽的花;}}$a=new flower();//将输出:2013-01-08 09:37:54浇了花 echo $a->look();//将输出:一朵美丽的花 $b=new flower();//将输出:2013-01-0...
工厂模式通俗来说是指,为一些有着相同结构的类创建一个类族,并且为这个族群提供唯一一个入口类。请注意“相同结构”这个描述,它指的是某类物体拥有一些能让我们区别与其他物体的特征,比如说现在有一道联想题,通过两个词联想一样东西。“四个轮子,烧汽油”。我想你肯定能立刻就联想到小轿车、面包车、的士之类的汽车,不会联想到摩托车。这里的“四个轮子”和“烧汽油”便是小轿车、面包车、的士的相同特征,我们以它们来将小...
抽象工厂模式是对工厂模式的抽象,通俗来说,就是把工厂模式的结构分离出来成为能独立运行的个体。还是拿工厂模式中的例子来说明:现在有一个汽车工厂,它生产小汽车和巴士车,小汽车和巴士车都是由引擎、车身和轮子组成的。在工厂模式中,我们把小汽车和巴士车作为汽车族群中的两个类别,生产引擎、车身和轮子为生产汽车的固定结构,如下图所示:在抽象工厂模式中,把生产引擎、车身和轮子分别抽象出来,如下图所示:实际部署为:...
继承:如果一个对象A,使用了另一个对象B的成员,那么我们就称A对象继承了B对象! tip:继承概念体现在对象上,语法体现在类上 class B extends A { }! <?php class Goods{public $goodsName;public $price;public function sayName($goodsName){$this->goodsName=$goodsName;echo $this->goodsName;}} class Books extends Goods{ public function sayPrice($price){$this->price=$price;echo $this->price.人民币;} } $book1=n...
类的作用 1实例化对象 2作为其他类的基础类,被继承! 3调用其静态成员两大主要功能:实例化对象、被继承。存在两种特殊的类,功能单一! 1, **只能实例化对象,不能被继承。**final类 2, 只能被继承,不能实例化对象。抽象类final类和final方法 final 类是继承链上的末链,不能再有子类final class End{ } class Test extends End{ }运行结果:报错 PHP Fatal error: Class Test may not inherit from final class (End) in /u...
访问修饰限定符: 用于描述,一个成员(属性,方法)在哪里才能被访问到!tip: PHP是采用类的概念,进行成员的限制访问的! PHP将访问的代码,分成三大区域:类内,类外,继承链类内!是根据: 目标成员在哪里定义 与 目标成员在哪里访问(看当前访问->属性/方法的代码在哪里执行)的位置 来决定类内,类外还是继承链类内!<?php class A{public function iam_a(){var_dump($this->property);} } class B extends A{//在B类中定义...