紧接着我们上次讨论的地方,对“能见度”的概念进行一次练习:
<?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) |