Chinaunix首页 | 论坛 | 博客
  • 博客访问: 757400
  • 博文数量: 26
  • 博客积分: 8255
  • 博客等级: 中将
  • 技术积分: 934
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-06 01:52
文章分类

全部博文(26)

文章存档

2012年(1)

2011年(8)

2010年(10)

2008年(7)

分类:

2010-02-02 09:48:14

紧接着我们上次讨论的地方,对“能见度”的概念进行一次练习:

<?php
class Product
{
// 以下定义的是一个属性
protected $_type = 'Book';
// 以下将定义具体的方法
}


可看到我们通过$_type来定义了Product类中 的一个被保护的属性 - type,为了方便,我们给$_type定义了一个默认值,当然了,在实际环境中这样做是没有必要的。我们将上述代码保存为Product.php文 件。

接下来我们在相同目录下重新创建一个test.php文件,编写如下代 码:

<?php
//调用Product类文件
require_once 'Product.php';
//创建Product类的一个实例
$product = new Product();

// 显示$_type的值
echo $product->_type;


上述代码中,我们看到了一个新的概念点,那就是创建一个类的实例。类的实例通常是保存在一个变量中,换句话来讲,我们创建了一个对象,并将他保存在了一个变量 中,那么$product就是一个对象了。

显而易见,当我们执行test.php文件的时候,页面会弹出一个“致命错误”的提示。原因自然是我们让系统显示一个收到保护的属性值,这当然是不可能的了。

下面我就看如何来进行外部访问,我们需要增加如下方法到类文件中去:

<?php
class Product
{
// 以下定义的是一个属性

protected $_type = 'Book';
// 以下定义具体的方法
public function getProductType()
   {
     return $this->_type;
   }
public function setProductType($type)
   {
     $this->_type = $type;
   }
}


我们定义了“获取产品类型”和“设置产品类型”的两个方法,因为需要从外部进行访问,所以设置成了public

有心的人会发现,方法其实就是一个函数,没错,它就是我们所要执行操作的一种描述。我们可以看到我们试用了一个特殊变量$this,这个变量指向了当前的对象。

接下来我们通过修改test.php中如下代码来实现对产品类型的设置和显示:

$product->setProductType('DVD');
echo $product->getProductType();


到这里相信大家已经可以体验到从创建一个类文件,到引入,创建对象以及能见度的整个过程。

以后我们还会有更多的知识需要讨论
阅读(1280) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~