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