`

面向对象设计 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类的时候,已经考虑过了。
* 使用这个对象,就像使用家里的冰箱和微波炉一样方便、自然。
* 把 张三 换成换成 李四 试试?
*/
?>
分享到:
评论

相关推荐

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

    PHP专题从原理到实例简述PHP的重点函数,静态化技术,缓存技术,面向对象编程,以及详细的异常处理。 主题讲解思路清晰,流程化分析,富含表格与图片说明.

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向对象等内容。...

    PHP入门学习面向对象编程的概念

    php5现在的性能可以说已经超过上一个版本php4了,它强化了面向对象编程的概念,同时有了zend framework & smarty这个强大的组合,使用php也可以构筑mvc模式的应用系统了。本书突破以往的写作手法,直接从33个可以...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向对象等内容。...

    php面向对象中static静态属性与方法的内存位置分析

    本文实例分析了php面向对象中static静态属性与方法的内存位置。分享给大家供大家参考。具体如下: static静态属性的内存位置——&gt;类,而不是对象。下面做测试来证明一下 &lt;?php header("content-type:text/html;...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Google Android SDK开发范例大全(完整版)

    余志龙,来自于手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及J2EE、JSP、Servlet、JavaBeans、PHP、C#等程序语言,熟悉面向对象技术与Eclipse...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    南阳理工学院PHP编程讲义.rar

    第15 章PHP 的面向对象编程 229 15.1 类229 15.2 继承·····231 15.3 构造函数232 15.4 析构函数235 15.5 ::范围解析操作符······ 236 15.6 parent···237 15.7 序列化对象·····238 15.8 ...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、...

    数据库原理(第5版)

    第6章也讨论了分布式数据库和面向对象的数据库。 第7章介绍了使用基于Web的数据库处理,包括开放数据库连接(ODBC)和PHP脚本语言的使用。本章也讨论了可扩展标记语言(XML)的出现和基本概念。 第8章介绍了商业智能(BI)...

    Google Android SDK开发范例大全(第3版) 5/5

    分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、...

    Google Android SDK开发范例大全(第3版) 1/5

    分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、...

    Google Android SDK开发范例大全(第3版) 4/5

    分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、...

    Google Android SDK开发范例大全(第3版) 3/5

    分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、...

    【卷一/共两卷】AJAX实战pdf高清版90M

    附录B 面向对象程序员Javascript指南 B.1 JavaScipt不是Java B.2 JavaScript中的对象 B.2.1 创建即时对象 B.2.2 构造函数、类和原型 B.2.3 扩展内建类 B.2.4 原型的继承 B.2.5 JavaScijpt对象的反射 B.2.6 接口和...

Global site tag (gtag.js) - Google Analytics