开始了解 PHP V5 中的对象

2016-01-29 13:15 4 1 收藏

开始了解 PHP V5 中的对象,开始了解 PHP V5 中的对象

【 tulaoshi.com - PHP 】

本文描述 PHP V5 中对象和类的基础知识,从最基本的概念一直讲到继承,主要针对经验丰富的面向对象程序员和尚未接触过对象的读者。
作为 PHP 程序员,您肯定知道变量和函数。但类和对象可能就是另一回事。不定义单个类,就可以创建完美的系统。但即使您决定在自己的代码中不使用面向对象的编程,您仍可能需要了解面向对象的编程。例如,如果使用第三方库,比如通过 PHP Extension and Application Repository (PEAR) 可以使用的库,您将发现自己在实例化对象和调用方法。

 

简单地说,类 是一个由变量和方法组成的独立块或束。这些组件通常结合实现单个责任或一组责任。在本文中,您将创建一个类,该类收集了用于查询和填充由项和值组成的词典的方法。

类可以直接用作组织数据和功能的简单方法,就像一组函数和变量一样。但使用类可以忽略它的存在。类可用于在内存中生成多个实例。这样的实例叫做对象。每个对象可以访问一组相同的函数(在面向对象上下文中叫做方法)和变量(叫做特性或实例变量),但每个变量的实际值在每个对象中是不同的。

考虑角色扮演游戏中的一个单元比如坦克。类可能为坦克设置一组变量:防御和进攻能力,范围,健康状况,等等。该类也可能定义一组函数,其中包括 move() 和 attack()。当系统包含一个坦克类时,该类可用于生成数十个或数百个坦克对象,每个对象都潜在地具有自己的健康状况或范围特征。因此,类是用于生成对象的蓝图或模板。

理解类和对象最简单的方法可能就是创建一些类和对象。

 

 

 

可以用 class 关键字创建类。最简单的情况是,类由关键字类、名称和代码块组成:


class Dictionary {

}
 


类名可以包含字母、数字和下划线字符的任何组合,但不能以数字打头。

上例中的 Dictionary 类尽管用处有限,但完全合法。那么如何使用该类来创建一些对象呢?


$obj1 = new Dictionary();
$obj2 = new Dictionary();
$obj3 = new Dictionary();
 


至少在形式上,实例化对象与调用函数相似。对于函数调用,必须提供圆括号。与函数一样,一些类需要您为其传递参数。您还必须使用 new 关键字。这就告诉 PHP 引擎您希望实例化一个新对象。然后,返回的对象可以存储在一个变量中以供将来使用。

 

 

 

 


在类的主体中,可以声明叫做属性的特殊变量。在 PHP V4 中,属性必须用关键字 var 调用。这仍是合法的语法,但主要是为了向后兼容。在 PHP V5 中,属性必须声明为 public、private 或 protected。可以在 关键字:在此我们是否可以有一点隐私?中阅读有关这些限定词的内容。但现在在例子中将所有属性声明为 public。清单 1 显示一个声明了两个属性的类。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

 


    
class Dictionary {
    public $translations = array();
    public $type ="En";
}
 


正如所看到的,可以同时声明属性并为其赋值。可以用 print_r() 函数快速浏览一下对象的状态。清单 2 显示 Dictionary 对象现在具有更多成员。

 


    
$en = new Dictionary();
print_r( $en ); 

如果运行该脚本,将看到如下对象的输出:

Dictionary Object
(
    [translations] = Array
        (
        )

    [type] = En
)
 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)


可以使用对象操作符 - 访问公共对象属性。所以 $en-type 表示由 $en 引用的 Dictionary 对象的 $type 属性。如果可以访问属性,就意味着可以设置和获得其值。清单 3 中的代码创建 Dictionary 类的两个实例 换言之,它实例化两个 Dictionary 对象。它更改一个对象的 $type 属性,并添加两个对象的翻译:

 


    
$en = new Dictionary();
$en-translations['TREE'] = "tree";

$fr = new Dictionary();
$fr-type = "Fr";
$fr-translations['TREE'] = "arbre";

foreach ( array( $en, $fr ) as $dict ) {
    print "type: {$dict-type} ";
    print "TREE: {$dict-translations['TREE']}n";
}
 


该脚本输出如下


type: En TREE: tree
type: Fr TREE: arbre
 


所以 Dictionary 类现在比较有用了。单个对象可以存储不同的键值组合,还有一个标志

来源:http://www.tulaoshi.com/n/20160129/1489432.html

延伸阅读
标签: 浏览器
v5浏览器辅助怎么用?   首先打开v5wan游戏浏览器 进入浏览器后,请留意输入地址栏的右边的一个黄色按钮 找到按钮后,请点击打开,进入另一个浏览页面 看到这个画面后,请大家选择自己需要的辅助点击安装到浏览器。由于此图只给大家做一个展示,辅助页往下拉还有更多辅助工具,大家可别看到图片就跑咯^_好了...
标签: 智能手机
64位CPU+2GB运存+双卡 随着“4G酷跑”计划正式开跑,中兴旗下的4G手机可谓层出不穷,其中不乏有一些主打高性价的产品。作为中兴首批“互联网思维”产品,不到千元中兴V5系列深得年轻人喜欢,尤其是主打拍照以及双卡特性。 如今,中兴V5新品的发布再次对千元级手机市场发起了冲击,其中5.5英寸的中兴V5 Max是目前V5系列...
标签: PHP
出自:http://www.cncsk.com/Document/WebDev/PHP/200512291759.htm 这篇文章介绍在PHP的面向对象编程(OOP)。我将演示如何用面向对象的概念编出较少的代码但更好的程序。祝大家好运。 面向对象编程的概念对每一个作者来说都有不同的看法,我提醒一下一个面向对象语言应有的东西: - 数据抽象和信息隐藏 ...
标签: 智能手机
开启裸眼3D新视界 随着几年前电影阿凡达热映,3D电影闯入了人们的生活,人们喜爱这种新颖、震撼的观影感受,不过受限于笨重的眼镜以及场景,人们仅能到电影院中才能感受到震撼3D视觉效果。但是短短几年后,康得新将这一效果移植到了手机屏幕上,裸眼3D再也不需要用户佩戴笨重的眼镜,可谓在如今功能单一同质化严重的手机市场开辟了一条新的道路...
标签: PHP
简介 真正的天才具有正确评价不确定的,有风险的和矛盾的信息的能力。--邱吉尔 使用许多编程语言时,你通常只能使用面向对象或面向过程二者之一的编程方式。而在PHP中,你可以自由选择或混用。目前绝大多数PHP程序员使用面向过程的方式,因为解析WEB页面本身就非常过程化(从一个标签到另一个标签)。在HTML中嵌入过程处理代码是...

经验教程

771

收藏

90
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部