`

面向对象设计 2 —— PHP5面向对象基础(实例部分)

    博客分类:
  • PHP
阅读更多
如果描述不清 请参见
基础部分
DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) default NULL,
  `age` int(11) default NULL,
  `password` varchar(8) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records 
-- ----------------------------
INSERT INTO `person` VALUES ('1', '张三', '20', '123456');
INSERT INTO `person` VALUES ('2', '李四', '30', '12345');
INSERT INTO `person` VALUES ('3', '王五', '50', '123456');


<?
//数据库配置文件 db_config.php
$db_server = "localhost";
$db_user = "root";
$db_pwd = "";
$db_name = "php";
?>


<?
//个纯粹面向过程的方式来读取数据库中的用户信息。
//viewuser_mysql.php
require_once("db_config.php");//包含配置文件
$sql = "select * from person where name = '张三'";

$conn = mysql_pconnect($db_server,$db_user,$db_pwd);//建立连接
mysql_query("SET NAMES gbk");//指定数据库字符集,一般放在连接数据库后面
$my_db = mysql_select_db($db_name,$conn);//选择数据库
$result = mysql_query($sql,$conn);//执行查询
$userInfo = mysql_fetch_array($result);//返回查询结果到数组


$name = $userInfo["name"];//从结果数据中取出数据
$age = $userInfo["age"];
$password = $userInfo["password"];

echo "your name is ".$name."<br>";//输出数据
echo "your age is ".$age."<br>";
echo "your password is ".$password."<br>";
mysql_close($conn);
/**
* 这个思维模式我们太熟悉不过了。
* 1. 读取配置文件中的数据库参数。
* 2. 建立数据库连接。
* 3. 选择数据库。
* 4. 执行sql语句。
* 5. 将数据返回给数组。
* 6. 将每个数据内容取出。
* 7. 将信息显示。
*/
?>


<?
//面向对象的取数据库信息的内容。
//class_user.php
class UserInfo{
	private $name;
	private $password;
	private $age;
	private $userInfo;//存储数据库返回信息的数组变量

	public function __construct($name){
		require_once("db_config.php");//包含配置文件
		$sql = "select * from person where name = '$name'";

		$conn = mysql_pconnect($db_server,$db_user,$db_pwd);//建立连接
		mysql_query("SET NAMES gbk");//指定数据库字符集,一般放在连接数据库后面
		$my_db = mysql_select_db($db_name,$conn);//选择数据库
		$result = mysql_query($sql,$conn);//执行查询
		$this->userInfo = mysql_fetch_array($result);//返回查询结果到数组
		mysql_close($conn);
		$this->getInfo();//调用传递信息的方法
	}
	//获取信息传递给属性的方法
	private function getInfo(){
		$this->name = $this->userInfo["name"];
		$this->password = $this->userInfo["password"];
		$this->age = $this->userInfo["age"];
	}

	//返回每个属性的public方法
	public function getName(){
		return $this->name;
	}
	public function getPassword(){
		return $this->password;
	}
	public function getAge(){
		return $this->age;
	}
}
//class好像麻烦了些,但优点是结构清晰、扩展、重用和维护方便。
?>


<?
//viewuser.php
/**
* 显示用户 张三 的信息需要几步?
* 1. 创建 张三 出来。
* 2. 让这个 张三 告诉我们关于他的信息内容。
* 3. 显示这些信息。
*/
require_once("class_user.php");

$user = new UserInfo("张三");//创建一个user对象

$name = $user->getName();//分别调用方法取得数据
$password = $user->getPassword();
$age = $user->getAge();

echo "your name is ".$name."<br>";//输出数据
echo "your age is ".$age."<br>";
echo "your password is ".$password."<br>";

/**
* 张三 这个对象是如何创建的?创建时候做了什么?从那个服务器读取的?
* 从那个数据库读取的?从那个表单读取的?张三 的信息是如何读取的?
* 这些问题,在这里我们不需要再考虑。写刚才那个user类的时候,已经考虑过了。
* 使用这个对象,就像使用家里的冰箱和微波炉一样方便、自然。
* 把 张三 换成换成 李四 试试?
*/
?>
分享到:
评论

相关推荐

    面向对象设计 1 —— PHP5面向对象基础(基础部分)

    这篇博客“面向对象设计 1 —— PHP5面向对象基础(基础部分)”可能详细讲解了PHP5中面向对象的基础知识,包括类、对象、封装、继承和多态等核心概念。 1. 类与对象 在PHP5中,类是创建对象的模板,它定义了一组属性...

    面向对象设计 5 —— PHP5面向对象进阶(重写(override))

    面向对象设计是编程领域中的一个重要概念,特别是在PHP5及更高版本中得到了显著强化。本教程主要探讨PHP5的面向对象进阶特性,特别是类的重写(Override)机制。通过以下列出的源码文件,我们可以深入理解这一概念。...

    面向对象设计 6 —— PHP5面向对象进阶(关键字 this)

    面向对象设计是编程领域中的一个重要概念,特别是在PHP5中,它引入了丰富的面向对象特性,使得PHP成为了一种更加强大的面向对象编程语言。本文将深入探讨PHP5中的"this"关键字,它是面向对象编程中一个至关重要的...

    面向对象设计 3 —— PHP5面向对象进阶(类的继承)

    在PHP5中,面向对象编程(Object-Oriented Programming,OOP)是现代Web开发中的核心概念,极大地提升了代码的可读性、可维护性和复用性。本篇将深入探讨PHP5中的类的继承这一关键特性,以及如何在实际项目中应用。 ...

    php面向对象——记忆卡

    标题和描述概述的知识点主要集中在PHP面向对象编程的基础概念、应用以及高级特性上。下面将对这些知识点进行详细的解析和扩展。 ### PHP面向对象编程概览 PHP是一种广泛使用的脚本语言,支持多种编程范式,包括...

    23种 设计模式---面向对象的基本原则

    在面向对象编程中,设计模式基于一些基本原则,这些原则构成了良好设计的基础。本篇将深入探讨23种设计模式以及面向对象的基本原则。 面向对象的基本原则主要包括: 1. 单一职责原则(Single Responsibility ...

    PHP源码实例——jz

    【PHP源码实例——jz】是一个专门为初学者设计的学习资源,它包含了使用PHP编程语言开发的实际项目代码。这个实例库旨在帮助初学者理解和掌握PHP的核心概念,通过实践来提升编程技能。以下将对PHP源码实例中的关键...

    面向对象实例(图形计算器) PHP

    本实例——“面向对象实例(图形计算器)”——将帮助你深入理解并熟练掌握PHP的OOP特性。 在传统的过程式编程中,代码通常是按顺序执行的,而面向对象编程则以类和对象为中心,强调数据和操作数据的方法。在PHP中,...

    深入PHP++面向对象、模式与实践_2017英文版+最新中文版(附源码)

    总之,《深入PHP++面向对象、模式与实践》是一本全面介绍PHP面向对象编程的宝典,无论是初学者还是有经验的开发者,都能从中受益匪浅,提升自己的PHP编程技能。附带的源码可以帮助读者更好地理解书中的示例,加深对...

    php简单面向对象的网站例子

    $news1 = new News("PHP面向对象教程", "这是一个关于PHP OOP的教程"); $news1-&gt;display(); ``` 这里,`$news1`就是一个`News`类的对象,我们通过调用其`display`方法来显示新闻。 面向对象的三大特性——继承、...

    PHP专题——重点函数_静态化_缓存_面向对象_异常处理

    综上所述,PHP专题涵盖了从基础到高级的关键知识点,包括重要函数的选择性解析、面向对象编程的深入理解、异常处理的应用以及静态化和缓存技术,旨在帮助开发者全面掌握PHP的核心技能,以适应不断发展的Web开发需求...

    php5面向对象

    面向对象编程是一种程序设计范式,强调数据和操作这些数据的方法应该封装在一起,形成独立的实体——对象。下面我们将深入探讨PHP5的面向对象基础、进阶概念以及高级类特性。 ### 1. 面向对象基础 #### 类与对象 -...

    PHP面向对象编程(用星际快速入门)

    ### PHP面向对象编程详解——以星际争霸为例 #### 一、引言 在现代软件开发中,面向对象编程(Object-Oriented Programming, OOP)是一种广泛应用的技术,它通过将程序设计围绕“对象”来进行组织,使代码更易于...

    PHP实例开发源码——Sail! php 企业网站管理系统简体中文版.zip

    2. **面向对象编程**:类、对象、继承、封装、多态,以及PHP中的命名空间。 3. **字符串和数组处理**:字符串操作函数、数组处理函数,以及PHP的内置数组类如SplArrayObject。 4. **文件和目录操作**:用于读写文件...

    PHP实例开发源码——科威php防火墙.zip

    7. **类与对象**:防火墙可能采用面向对象的编程,用类来封装功能,以便更好地组织和重用代码。 8. **异常处理**:学会使用PHP的异常处理机制来捕获和处理运行时错误,提高程序的健壮性。 通过分析和学习这个科威...

    PHP实例开发源码——php情缘交友网源码.zip

    【标题】"PHP实例开发源码——php情缘交友网源码.zip" 是一个包含PHP编程语言实现的在线交友网站的源代码集合。这个压缩包很可能是为了教学或实际项目开发而提供的,允许开发者深入理解PHP在构建社交网络平台中的...

    PHP实例开发源码——Compxler PHP版.zip

    2. **面向对象编程**:类的定义、继承、封装、多态等概念,以及如何使用命名空间来组织代码。 3. **错误和异常处理**:理解PHP的错误报告级别,如何捕获和处理异常,以及使用`try-catch`语句。 4. **文件系统操作*...

    面向对象的编程思想.rar

    通过阅读“面向对象的编程思想(一)至(五)”的文档,初学者可以逐步理解这些概念,了解如何在实际编程中应用面向对象的设计模式,如工厂模式、单例模式、观察者模式等,以及如何通过面向对象的思维解决实际问题,...

    php初级编程的例子,面向对象的封装很适合

    6. 对象实例化(Instantiation):通过`new`关键字,我们可以根据类创建新的对象实例。例如: ```php $person = new Person(); $person-&gt;name = "John Doe"; $person-&gt;introduce(); // 输出 "Hello, my name is ...

Global site tag (gtag.js) - Google Analytics