免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2444 | 回复: 0
打印 上一主题 下一主题

PHP面向对象编程(二) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-02 09:48 |只看该作者 |倒序浏览

                                               
紧接着我们上次讨论的地方,对“能见度”的概念进行一次练习:
?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();
到这里相信大家已经可以体验到从创建一个类文件,到引入,创建对象以及能见度的整个过程。
以后我们还会有更多的知识需要讨论


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13606/showart_2167024.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP