无忧岛

15 七, 2010

php面向对象OOP编程教程(二) – 类的创建

Posted by: kinglife In: php

前面我已经表示得很清楚了,PHP是一种混合型语言,这也是它的优势,因此,我们可以拿起锯子就做一把椅子(面向过程),也可以经过周密的计划来建造一栋房子(面向对象),无论是面向对象还是面向过程,都有自己的优势,都要付出一定的代价.但是,我们还是要会玩面向对象才行啊,因为从某种意义上来讲,面向过程已经是一种过于”传统”的编程思想,毕竟面向对象更符合现实的逻辑.

从PHP5开始,PHP已经完全支持面向对象,PHP6势必要加强对面向对象的支持.那么PHP官方为什么越来越重视面向对象呢?答案是不言而喻的.起初,PHP只是为个人和小项目而设计的脚本语言,但是现在不一样了,作为最优秀、最流行的客户端脚本语言之一,PHP的地位已经被越来越多的人认可,现今为止它在无数大型项目上的表现也令人感到十分满意,已经证明了它足以胜任任何大型项目.由于它是跨平台、免费的,因此被越来越多的人喜爱和接纳,尤其是JAVA阵营的朋友们.

我们不妨来展望一下PHP的未来,通过AMFPHP,PHP与Flex、Flash、Json、XML等技术实现了二进制无缝通信.ActionScript3.0开始,也开始完全支持面向对象,再加上Flex和Flash助阵,我们不仅可以利用PHP来开发WEB应用程序、RIA应用程序、而且还可以开发移动应用程序(Flash逐渐开始在移动平台崭露头角,目前已经得到Android 2.2的支持,注意是真真正正的Flash,而非面向低端手机的Flash Lite,而这一切仅仅是一个开端),这对我国马上就要到来3G时代有着非凡的意义.

因此,对于一个真正的PHPer来说,如果不接触面向对象,那的确是一种遗憾.

 

好,那么从今天开始,我们就要玩代码了,PHP的类里面大概包含两个部分,即它的成员属性和成员方法,不要紧张,我们不去挖它们的概念,所谓属性和方法,就是类里面的成员变量和成员函数.所以从现在开始,只要我提到属性,大家就要下意识的想到它是一个变量;只要我提到方法大家就要下意识的想到,它是一个函数.因此,我在这里给出一个狭义的结论,请大家牢记:

属性就是变量
方法就是函数

当然对外大家不能这么说,因为他们性质是截然不同的,由于我们回避了概念性的东西,这么说仅仅是为了便于大家记忆和理解.

好,那么我们现在来玩一玩怎么创建一个完整的PHP类.这里可能会涉及到一些命名规范,关于这些规范,大家可以参阅我另外一篇文字《分享下我编程的代码规范》

http://www.im286.com/thread-4111157-1-1.html

创建类的方法:


class 类的名称
{
var $属性的名称;

function 方法的名称(参数列表)
{
……
}
}

这样就是一个完整的类,怎么样?够简单吧?它本来也就不难,只是很多人由于一些概念性问题不原意接去触它,但是一旦接触了,大家会发现,它也就不过如此嘛,的确,它也就不过如此。

一个类里面可以包含多个属性多个方法

那么我们结合前面假设开发的游戏来设计一个类:


class Role //角色类
{
    //属性部分
    var $role_name; //角色的名字
    var $role_sex; //角色的性别
    var $role_skill; //角色的技能

    //方法部分
    function roleTalk() //角色说话
    {
        echo '我会说话<br />';
    }

    function roleFight() //角色发招
    {
        echo '我会发招<br />';
    }
}

这样,一个具有完整属性和方法的类就算是建好了,是不是简单得掉渣呢?至于我们如何利用这个类来创造出”春哥”、”曾哥”和”凤姐”,并且让他们都会说话,都能发招呢?请看下玩分解.

作者:hetty 首发地址:http://www.im286.com/thread-4823948-1-1.html

版权所有,转载时必须以链接形式注明作者和原始出处及本声明:KingLife@无忧岛

本文链接: http://www.islandcn.com/post/766.html



No Responses to "php面向对象OOP编程教程(二) – 类的创建"

Comment Form

Categories

Flickr PhotoStream

    flickrRSS probably needs to be setup

About

Name:KingLife
Email:lifewz#163.com