当前位置:  开发笔记 > 编程语言 > 正文

PHP中类的使用,面向对象的思路

以前开始学习PHP的时候也是使用的面向结构的思想,因为我们一开始接触C++的时候就是使用的面向结构的代码。虽然后来学习了类,但是还是对于面向结构比较喜欢吧。之前的很长一段时间我对于类或者面向对象都不是很清楚,问了一个师兄,师兄给了我一个比方,说">

以前开始学习PHP的时候也是使用的面向结构的思想,因为我们一开始接触C++的时候就是使用的面向结构的代码。虽然后来学习了类,但是还是对于面向结构比较喜欢吧。

之前的很长一段时间我对于类或者面向对象都不是很清楚,问了一个师兄,师兄给了我一个比方,说的很是形象“好比两个人打架,你要用程序去描述它,面向结构了,你是把每一步的对打都写好了,比如对方出什么招数,你出什么招数,必须每一步都写出来,面向对象的方法了,你要把打架的过程拆分成几个部分,打架前,打架中,及其之后”,虽然这个比方不是很确切,但是让我对于面向对象有了那么一点认识。

现在对于PHP的面向对象的做法,已经学习了一段时间,做的系统里面也有是用面向对象的方法做的了。

说一说面向对象的好处吧,它可以让系统很好的模块化,可以让很多的程序员一起工作,提高了编码的效率。对于整个系统的维护和更新也方便了很多的。

下面帖个类出来,大家感受一下吧。这个是一个数据库链接和操作的基础类,它为其他类说引用吧。

/*
数据库类文件:class_database.php
数据库操作类,本类是其他类操作的基础,即其他类函数的实现一般情况下通过数据库类实现
创建世间:2007年5月17日
*/
include_once("config.inc"); //包含系统配置文件
class data_class
{
//属性
private $host; //服务器名
private $user; //用户名
private $pwd; //密码
private $name; //数据库名
private $connection; //连接标识

//方法
//__get():获取属性值
function __get($property_name){
if(isset($this->$property_name))
{
return($this->$property_name);
}
else
{
return(NULL);
}
}
//__set():设置单个私有数据属性值,用于少量的修改数据
function __set($property_name, $value)
{
$this->$property_name = $value;
}
//__construct:构造函数,建立连接,在函数建立时自动调用建立,原则新建对象时不显式调用
function __construct()
{
$this->host=sys_conf::$dbhost; //使用sys_conf类的静态属性
$this->user=sys_conf::$dbuser;
$this->pwd=sys_conf::$dbpswd;
$this->name=sys_conf::$dbname;
//建立与数据库的连接
$this->cOnnection=mysql_connect ($this->host,$this->user,$this->pwd);//建立连接
mysql_query("set names 'utf8'");//字符集的统一
mysql_select_db("$this->name", $this->connection); //选择数据库挑战杯
}
//__destruct:析构函数,断开连接,在函数执行完毕时自动调用析构。实现关闭数据库的连接,保证数据库数据的安全
function __destruct()
{
mysql_close($this->connection);
}
//增删改:参数$sql为Insert update
function execute($sql)
{
mysql_query($sql);
//echo "写入数据库成功了";
//echo "我是dataclass类的execute函数";
}//execute
//查:参数$sql为Insert语句
//返回值为对象数组,数组中的每一元素为一行记录构成的对象
function query($sql)
{
$result_array=array(); //返回数组
$i=0; //数组下标
$query_result=@mysql_query($sql,$this->connection); //查询数据
while($row=@mysql_fetch_object($query_result))
{
$result_array[$i++]=$row;
}//while
return $result_array;
}
//获得查询结果的纪录数函数
function result_query($sql)
{
$result=mysql_query($sql);
$result_c=mysql_num_rows($result);
return $result_c;
}
}
?>


推荐阅读
  • 尽管PHP曾是我的入门语言,并且至今仍是我的主要工作技能,但在经过五年的开发实践后,我更倾向于推荐Java。Java在与MySQL的兼容性和稳定性方面表现出色,更适合初学者学习和长期发展。此外,Java拥有更丰富的开发资源和社区支持,能够为开发者提供更多的成长机会和技术支持。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • Django框架下的对象关系映射(ORM)详解
    在Django框架中,对象关系映射(ORM)技术是解决面向对象编程与关系型数据库之间不兼容问题的关键工具。通过将数据库表结构映射到Python类,ORM使得开发者能够以面向对象的方式操作数据库,从而简化了数据访问和管理的复杂性。这种技术不仅提高了代码的可读性和可维护性,还增强了应用程序的灵活性和扩展性。 ... [详细]
  • 程序员的“语言奇缘”续篇:计算中心管理员小C的非正式编程之旅
    (以下故事纯属虚构,旨在为编程爱好者提供一丝轻松时光,如有雷同,纯属巧合,敬请读者勿过度联想)在操作系统课程中,我们认识了计算中心的管理员小C。小C虽然并非科班出身,却凭借对编程的浓厚兴趣和不懈努力,逐渐在技术领域崭露头角。她不仅熟练掌握了多种编程语言,还经常利用业余时间开发一些实用的小工具,帮助同事提高工作效率,成为了团队中的技术明星。小C的故事激励着每一个热爱编程的人,证明了技术之路不问出处,关键在于不断学习与实践。 ... [详细]
  • Photoshop教程第五讲:使用套索工具精准抠图技巧
    在本节Photoshop教程中,我们将深入探讨如何利用套索工具实现精准的图像抠图。通过详细的操作步骤和实用技巧,帮助用户掌握套索工具的多种使用方法,提升图像处理的精细度和效率。 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • 从Google Jam落选后,意外收获了一颗“桔子”,重新整理行囊再出发 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 在当前各种算法实现和开源软件包层出不穷的背景下,算法对程序员的重要性是否有所减弱?回顾历史,早期程序员必须熟练掌握算法并频繁自行编写。然而,随着技术的发展,算法逐渐成为一种“商品”,现代开发者更多依赖现成的库和商业算法解决方案。有观点认为,机器学习领域中,许多算法已经被高度封装,不再需要深入理解其背后的数学原理。然而,这种趋势也引发了关于技术深度与广度平衡的讨论,强调了基础理论知识在应对复杂问题时的不可替代性。 ... [详细]
  • 深入解析Java虚拟机内存模型(JMM)及其核心机制
    为了深入理解Java内存模型(JMM),首先需要对计算机硬件体系有全面的认识,尤其是CPU与主存之间的多级缓存架构。这些硬件特性直接影响了JMM的设计和实现,确保在多线程环境下数据的一致性和可见性。 ... [详细]
  • 六个接私活的平台,技术在手,财富自由!值得推荐给每一位专业人士!
    本文将介绍六个适合专业人士接私活的平台,帮助技术人才实现财富自由。这些平台不仅提供了丰富的项目机会,还为用户搭建了高效的合作桥梁,是每位技术人士不容错过的资源。 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • Java新手求助:如何优雅地向心仪女生索要QQ联系方式(附代码示例与技巧)
    在端午节后的闲暇时光中,我无意间在技术社区里发现了一篇关于如何巧妙地向心仪女生索取QQ联系方式的文章,顿时感到精神焕发。这篇文章详细介绍了源自《啊哈!算法》的方法,不仅图文并茂,还提供了实用的代码示例和技巧,非常适合 Java 新手学习和参考。 ... [详细]
  • Java 8 引入了 Stream API,这一新特性极大地增强了集合数据的处理能力。通过 Stream API,开发者可以更加高效、简洁地进行集合数据的遍历、过滤和转换操作。本文将详细解析 Stream API 的核心概念和常见用法,帮助读者更好地理解和应用这一强大的工具。 ... [详细]
author-avatar
虛情徦噫d_951
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有