`
webcode
  • 浏览: 6079714 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

PHP面向对象之旅:类和对象

 
阅读更多

从OOP的视角看,不应区分语言。无论是C++、无论是Java、无论是.net还有更多面向对象的语言,只要你了解了OO的真谛,便可以跨越语言,让你的思想轻松的跳跃。便没有对于Java、.net、PHP 之间谁强谁弱的争执了。

希望这个介绍PHP5面向对象编程(OOP)的资料能让初学者受益,能让更多的PHPer开始转向OO的编程过程。

相对PHP4,PHP5在面向对象方面改变了很多。我们将只介绍PHP5环境下的面向对象。而我们必须改变自己来跟随PHP5的发展。如果代码结果在你的环境下执行不一致,请确认你的环境为PHP5。

我们假设读者没有任何面向对象的知识,即使你是第一次听说OOP,也可以读懂这文章。但我希望你必须对PHP有一些了解。

在后面我们将使用一些例子,来逐渐分析PHP5的OO基础。

面向对象只解决了两个问题,代码的可扩展性 、代码的可维护性。

不得不说句,php越来越像Java了。

Everything is Object:万事万物皆对象。
面向对象的编程(OOP)思想力图使对计算机语言中对事物的描述与现实世界中该事物的本来面目尽可能的一致。面向对象语言与我们的生活是想通的,面向对象语言学习起来其实很简单。在应用中更符合我们的生活逻辑。

类(Class)是用来描述一个对象(Object):

类描述了每个对象应包括的数据,类描述了每个对象的行为特征。

Class/Object:类(class)和对象(object)是面向对象方法的核心概念。

类是对一类事物描述,是抽象的、概念上的定义;

对象是实际存在的该类事物的每个个体,因而也称实例(instance)。在计算机中,可以理解为,在内存中创建了实实在在存在的一个内存区域存储着这个对象。

创建对象的过程称为创建对象,也称为实例化。

PHP5中的类和对象
我们先建立一个基础的类。

PHP中使用关键字 class 来定义一个类。类的命名一般使用首字符大写,而后每个单词首字符大写连接的方式方便阅读。

view sourceprint?
1 <?

2 class Person

3 {

4

5 }

6 $p = new Person();

7 echo $p;

8 ?>
这样,我们就拥有了第一个PHP类。

我们继续来使用这个类,使用 new 这个关键字创建对象,用echo打印$p

我们定义了一个变量 $p ,使用 new 这个关键字创建了一个Person的对象。

打印变量$p,我们看到输出Object id #1 提示这是一个对象。

$p = new Person();也可以写成 $p = new Person;,但不建议使用后面的这种方式。

PHP5 中的属性
属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)

在PHP5中,属性指在class 中声明的变量。在声明变量时,必须使用 public private protected 之一进行修饰,定义变量的访问权限。

•Public(公开): 可以自由的在类的内部外部读取、修改。
•Private(私有): 只能在这个当前类的内部读取、修改。
•Protected(受保护):能够在这个类和类的子类中读取和修改。
属性的使用:通过引用变量的 -> 符号调用变量指向对象的属性。

在方法内部通过 $this-> 符号调用同一对象的属性。

view sourceprint?
01 <?

02 class Person{

03 public $name = "Gonn"; //定义public属性 $name.

04 public $age = 20; // 定义 public 属性 $age;

05 }

06 $p = new Person(); // 创建对象

07 echo $p."<br>"; // 输出对象

08 echo "他的名字是 ".$p->name; // 输出对象$p的属性 $name;

09 echo "<br>";

10 echo '他的年龄是 '$p->age; //输出age属性.

11 ?>
程序输出结果为:

view sourceprint?
1 他的名字是 Gonn

2 他的年龄是 24
Person类有两个属性,$name 和 $age , 在实例化后,使用$p->name 和 $p->age 打印出属性的内容。

当然,你可以在属性定义时不设置初始值,那样的话,就打印不出任何结果了。

改变对象的属性,注意 8行和9行代码,还有输出结果的变化。我们看到输出的属性值被改变了。

view sourceprint?
01 <?

02 // 1-4.php

03 class Person{

04 public $name = "NoName"; //定义public属性 $name.

05 public $age = 20; // 定义 public 属性 $age;

06 }

07 $p = new Person(); // 创建对象

08 $p->name = 'Tom'; //变更姓名为 Tom

09 $p->age = 25 ; // 变更年龄为 25 岁.

10 echo "他的名字是 ".$p->name; // 输出对象$p的属性 $name;

11 echo "<br>";

12 echo '他的年龄是 '.$p->age; //输出age属性.

13 ?>
创建一个Person的对象,改变这个对象的属性。为它命名,查看它的名字。你就是机器里面这个Person对象的上帝,按照你定义的规则,这个实实在在内存中的Person对象被创建了,而且它有了可以改变的属性。

现在,我们就是计算机世界的上帝,准备好创造世界吧。

Private 修饰的属性,在当前对象以外不能访问。设置私有属性是为了进行数据的隐藏。

隐藏:指对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问。

view sourceprint?
1 <?

2 // 1-3.php

3 class Person{

4 private $name = "Gonn"; //定义public属性 $name.

5 public $age = 20; // 定义 public 属性 $age;

6 }

7 $p = new Person(); // 创建对象

8 echo "他的名字是 ".$p->name; // 输出对象$p的属性 $name;

9 ?>
运行此程序将会输出:

view sourceprint?
1 Fatal error: Cannot access private property Person::$name in E:\PHPProjects\test.php on line 9
私有属性不能被外部访,这样做的好处后面会介绍到。

参考:http://www.nowamagic.net/librarys/veda/detail/1082

分享到:
评论

相关推荐

    PHP面向对象之旅深入理解static变量与方法共11页

    本资料“PHP面向对象之旅深入理解static变量与方法”旨在帮助开发者深入理解PHP中的静态(static)变量和静态方法,这些都是OOP的重要组成部分。下面我们将详细探讨这两个概念。 1. 静态变量 静态变量是在类中定义...

    PHP面向对象之旅:深入理解static变量与方法

    在PHP编程语言中,面向对象编程(OOP)是一个核心概念,它允许开发者定义和组织代码结构,使得代码更加模块化、易于维护和扩展。在OOP中,`static`关键字是一个非常重要的特性,用于声明类的静态变量和静态方法。...

    php面向对象初步入门教程pdf版

    总之,本教程将引导你逐步了解PHP面向对象编程的基础,同时涵盖与MySQL数据库的交互,为你的Web开发之旅打下坚实的基础。阅读《php面向对象初步入门教程pdf版》将帮助你快速掌握这些关键概念,并在实践中应用它们。

    PHP面向对象之旅深入理解static变量与方法

    在PHP编程语言中,面向对象编程(OOP)是一个核心概念,它允许开发者定义和组织代码结构更加清晰和模块化。在PHP的OOP中,`static`关键字...理解和正确使用静态变量和方法对于编写高质量的PHP面向对象程序至关重要。

    PHP面向对象之刀客教程03

    在PHP编程领域,面向对象(Object-Oriented Programming,简称OOP)是一种强大的设计思想...如果你错过了这个教程,那么你可能会错过提升自己编程能力的一个宝贵机会,因此,把握现在,立即开始你的PHP面向对象之旅吧!

    《PHP面向对象之旅》.pdf

    PHP开发学习,PHP高级开发知识

    深入PHP面向对象模式与实践

    最后,附带的"文章链接.pdf"可能是与书中内容相关的补充阅读材料或案例研究,而"深入PHP面向对象模式与实践.rar"则是书籍的电子版,供读者下载阅读和学习。 通过阅读这本书,PHP开发者不仅可以深化对面向对象编程的...

    PHP自动加载:优雅编码的自动化之旅

    5. **面向对象**:PHP支持面向对象编程(OOP),允许开发者创建类和对象。 6. **可扩展性**:PHP可以通过PECL扩展库来扩展其功能。 7. **社区支持**:PHP有一个庞大的开发者社区,提供大量的框架、工具和资源。 #

    PHP面向对象的使用教程 简单数据库连接

    作为开始PHP面向编程之旅的一个开始吧.我看了很多网上流传的MYSQL数据库连接类,都太复杂拉.以我己见,真的没必要搞得那么复杂,一个小小的数据库连接. 下面是我的写的类: &lt;?php Class createdb //类的开始 { var...

    我的PHP学习之旅——PHP基础知识汇总.zip

    在PHP的世界里,初学者经常会遇到许多概念和技巧,这些都在你所提到的"我的PHP学习之旅——PHP基础知识汇总.zip"文件中有所涵盖。这个压缩包可能是你学习PHP的宝贵资源,包含了从基础到进阶的各类知识点。下面,我将...

    php教程MYSQL学习视频PHP程序员基础课程上1-15课.rar

    9. PHP类和对象:在12PHP第十二讲中,我们将迈入面向对象编程的大门,学习类的定义、对象的创建、属性和方法,以及继承、封装和多态等概念。 10. 类中常用关键字:15PHP第十五讲详细解释了类中的关键字,如public、...

    想要学php跟我来,值得下载

    - 第十讲.ppt:这可能是关于PHP面向对象编程或数据库操作的PPT讲座,涵盖了类、对象、数据库连接等内容。 - 使用说明文档.txt:提供教程的使用指南,可能包括安装步骤、运行示例和常见问题解答。 - php100-10.wmv:...

    李炎恢PHP视频教程第二季下载地址

    5. **面向对象编程**:PHP5引入了完整的面向对象支持,包括类、对象、属性、方法、继承、封装和多态等概念,本教程会深入讲解这些内容。 6. **错误与异常处理**:学习如何正确处理程序中的错误和异常,以提高代码的...

    PHP编程基础与实例教程课件

    **PHP编程基础与实例教程课件** PHP,全称“Hypertext Preprocessor”,即“超文本预处理器”,是一种广泛使用的开源服务器端脚本语言,尤其适用于Web开发,可以嵌入到HTML中...祝你在PHP的学习之旅上取得丰硕成果!

    php-study.7z

    5. **面向对象编程**:PHP5引入了完整的面向对象特性,包括类、对象、继承、封装和多态,这使得PHP能处理更复杂的应用场景。 三、前后端交互 6. **HTML与PHP**:了解如何在HTML中嵌入PHP代码,实现动态网页生成,...

    php商城实例开发(仅适用于初学者)

    在本教程中,我们将深入探讨"PHP商城实例开发",这是一个专为初学者设计的项目,旨在帮助新手快速掌握PHP面向对象编程的基本概念和实践应用。在这个过程中,你将了解到如何利用PHP构建一个功能完善的在线商城系统。 ...

    计算机后端-整套PHP视频教程.配套工具php环境搭建软件.7z

    2. 面向对象编程:类与对象是OOP(面向对象编程)的核心,包括类的定义、属性、方法、继承、封装、多态等概念。 3. PDO(PHP Data Objects):提供了一种数据库访问抽象层,支持多种数据库系统,提高代码的可移植性...

    php100视频教程下载地址

    6. **面向对象编程**:深入探讨PHP的面向对象特性,如类、对象、继承、封装和多态,这是现代PHP开发的基础。 7. **错误与异常处理**:如何正确地捕获和处理运行时错误,以及使用异常处理机制来增强代码的健壮性。 ...

    php教程全部ppt

    6. **面向对象编程基础**:掌握类与对象的概念,以及如何定义类、创建对象,理解封装、继承和多态三大特性。 7. **类与对象的高级特性**:学习抽象类、接口、魔术方法、静态属性和方法、命名空间、Traits等。 8. *...

Global site tag (gtag.js) - Google Analytics