开始了解 PHP V5 中的对象

活死人639

活死人639

2016-01-29 13:15

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

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

 

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

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

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

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

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

 

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

 

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

 

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

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


class Dictionary {

}
 


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

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


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


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

 

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

 

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

 

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

 

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


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

 

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


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


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

 

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


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

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

Dictionary Object
(
    [translations] = Array
        (
        )

    [type] = En
)
 


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

 

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


    
$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";
}
 


该脚本输出如下

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


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


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

展开更多 50%)
分享

猜你喜欢

开始了解 PHP V5 中的对象

PHP
开始了解 PHP V5 中的对象

高级PHP V5 对象研究

PHP
高级PHP V5 对象研究

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

PHP V5 迁移指南

Web开发
PHP V5 迁移指南

CATIA V5安装教程

电脑网络
CATIA V5安装教程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MIUI V5 UI设计欣赏

平面设计 标志设计 UI设计 VI设计
MIUI V5 UI设计欣赏

(RFC1928)SOCKS V5

编程语言 网络编程
(RFC1928)SOCKS V5

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Flash MX2004入门与进阶实例——文字和组件(1)

Flash MX2004入门与进阶实例——文字和组件(1)

Flash MX2004入门与进阶实例——文字和组件(10)

Flash MX2004入门与进阶实例——文字和组件(10)
下拉加载更多内容 ↓