面向对象(Object Oriented Programming,OOP)的基础知识:

第一个例子:

  类Test.class.php

<?php
class Test{
public $a=1;
protected $b=2;
private $c=3;
public function fun1(){
//echo "fun1";
//调用fun2
$this->b=789;
$this->fun2();
//echo $this->c;
}
protected function fun2(){
//echo "fun2";
echo $this->b;
}
private function fun3(){
echo "fun3";
}
}

  引用类 text.php

require 'Test.class.php';
$ob=new Test();
echo $ob->a;
echo "<hr/>";
$ob->fun1();

第二个例子(构造函数):

class Person{
function __construct($name,$sex)
{
$this->name=$name;
$this->sex=$sex;
} //定义类的属性
function showName()
{
echo $this->name; //定义类的showName方法
}
function showSex()
{
echo $this->sex; //定义类的showSex方法
}
} class Worker extends Person{
function __construct($name,$sex,$job)
{
parent::__construct($name,$sex); //调用Person构造 函数,继承Person
}
}

 第三个例子(数据库的例子):

  类Db.class.php

<?php
class DB{
protected $conn="";
/*
* 作用:连接数据库,打开 设置交互字符集,选择数据库
* 参数:host username password dbName charset
* 返回值:bool
*/
function connect($host,$username,$password,$dbName,$charset='utf8'){
$link=mysql_connect($host,$username,$password);
$this->conn=$link;
if(is_resource($link)){
mysql_set_charset($charset);
$re=mysql_select_db($dbName);
if($re){
return true;
}else{
return false;
}
}else{
return false;
}
}
/*
* 作用:执行sql语句
* 参数:sql语句
* 返回值:update delete 返回影响记录条数
* insert 返回主键id值
* select 返回二维数组
*/
function query($sql){
$re=mysql_query($sql);
if($re){
//判断sql语句的类型
if(preg_match("/^update|^delete/i",$sql)){
return mysql_affected_rows();
}else if(preg_match("/^insert/i",$sql)){
return mysql_insert_id();
}else if(preg_match("/^select/i",$sql)){
//返回二维数组
$arr=array();
while($row=mysql_fetch_assoc($re)){
$arr[]=$row;
}
return $arr;
}else{
return $re;
}
}else{
return false;
}
} /*
* 作用:关闭数据库连接
* return:bool
*/
function close(){
return mysql_close($this->conn);
}
}

引用类Db.php

<?php
header("content-type:text/html;charset=utf-8");
require 'Db.class.php';
$ob=new Db();
$ob->connect("localhost", 'root', 'root', 'cms');
$arr=$ob->query("select * from news limit 5");
var_dump($arr);
$ob->close();

最新文章

  1. selenium截图对比校验方法
  2. 如何用.NET生成二维码?
  3. thinkphp- 许愿墙-1
  4. 深入理解 AngularJS 的 Scope
  5. 蓝牙4.0的LM层说明
  6. Pjax的使用
  7. QT 声明全局变量
  8. 怎样写Makefile文件(C语言部分)
  9. ASP.NET MVC常见问题解决方法
  10. hdu1116回溯N皇后问题
  11. HTML/CSS/Javascript调试入门(转)
  12. pureMVC简单示例及其原理讲解四(Controller层)
  13. 开源社群系统ThinkSNS+PC端最新播报!
  14. MacOS App代码申请管理员权限
  15. apue——无缓冲读写操作
  16. Angular6+ng-zorro实现登录页面
  17. shell脚本删除log日志
  18. vue extend 的基本使用
  19. C++中的智能指针
  20. Android-Binder原理浅析

热门文章

  1. #ifdef 宏定义一个main编译客户端服务端2套代码
  2. HBase之BlockCache数据读取(转)
  3. 异步ajax请求数据处理
  4. Nginx---配置系统(自己总结)
  5. 定时器实现Promise.all()的简单使用
  6. 【LeetCode 20】有效的括号
  7. 【2017 Multi-University Training Contest - Team 8】Hybrid Crystals
  8. Service5
  9. 使用PaxScript为Delphi应用增加对脚本的支持
  10. 解决$.ajax请求在ie8下失效问题