php面向对象深入理解(一)
面向对象(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();
php面向对象深入理解(一)的更多相关文章
- javascript面向对象的理解(一)
第一次在园子发文: 关于js面向对象的理解: 工厂方式是什么?构造函数是什么?原形链?对象的引用? 1.对象是什么? 在js接触的比较多的就是对象了,比如: var arr = []; arr.num ...
- 对面向对象的理解—— SAP电面(1)
对于C++面向对象的理解 面向对象是在结构化设计方法出现很多问题的情况下应运而生的.结构化设计方法求解问题的基本策略是从功能的角度审视问题域.它将应用程序看成实现某些特定任务的功能模块,其中子过程是实 ...
- JavaScript面向对象的理解
JavaScript面向对象的理解 笔记链接: http://pan.baidu.com/s/1c0hivuS 1:JavaScript 中分两种对象,函数对象和普通对象new Function() ...
- 谈个人对avascript面向对象的理解
javascript,不但是javascript或者是别的语音,大多数都有一句经典的话:一切皆对象. 下面谈谈我个人对面向对象的理解,为什么要用面向对象来写js,这话我思考了很久,最后得出的结论就是: ...
- javascript javascript面向对象的理解及简单的示例
javascript面向对象的理解及简单的示例 零.本节重点: 1.封装: 2.继承: 壹.下面理解: 一. javascript面向对象概念: 为了说明 JavaScript 是一门彻底的面向对象的 ...
- js面向对象怎么理解
js面向对象怎么理解 <一>. 认识对象.首先要认识对象:在编程中,对象(object)是具体的某一个实例,唯一的某一个个体.如:电脑就是一个统称,而你面前的这一台电脑就是对象.而电脑的统 ...
- python 面向对象简单理解
面向对象: 是一种程序设计范型 作用: 提高软件的重用性和灵活性,扩展性 世界万物一切皆为对象,对象即是指由特定状态,特征,行为的实体 知识点一: 代码的重用 举个栗子 比如小月月有了一个女朋友1 ...
- Java面向对象的理解
Java是一门面向对象的编程语言(Object Oriented Programming,OOP), 这个句话是每个学习Java的程序员应该先深刻理解的一句话. 我们之所以将自自然界分解,组织成各种概 ...
- OOP 面向对象的理解
概念 面向对象编程(OOP)是一种编程语言模型,围绕对象是行为.数据.逻辑. 从历史上看,程序被视为一种逻辑程序,它接收输入数据,处理数据并生成输出数据. 基础 面向对象的3大核心思想:封装.继承.多 ...
- 谈谈你对Java面向对象的理解
面向对象,其实是一种思考的思想,是一种思想,而这种思想它早期的思想是面向过程,通过不断的演化变成了现在的面向对象,思想有一个演变形式,早期是面向过程,现在是面向对象. 故事:把大象放进冰箱里,分几步? ...
随机推荐
- JavaScript常用技巧之字符串操作
1.首字母大写 str.replace(/\b\w+/g, function (word) { return word.substring(0, 1).toLowerCase() + word.sub ...
- 【Leetcode周赛】从contest1开始。(一般是10个contest写一篇文章)
注意,以前的比赛我是自己开了 virtual contest.这个阶段的目标是加快手速,思考问题的能力和 bug-free 的能力. 前面已经有了100个contest.计划是每周做三个到五个cont ...
- java反射的使用场合和作用、及其优缺点
1)使用场合 在编译时根本无法知道该对象或类可能属于哪些类,程序只依靠运行时信息来发现该对象和类的真实信息. 2)主要作用 通过反射可以使程序代码访问装载到JVM 中的类的内部信息,获取已装载类的属性 ...
- rest framework 之前
在开始rest framework之前,我们先来了解一下什么是restful rest 是一种软件架构风格,Representational state Transfer 它从资源的角度去看整个网络, ...
- Java中udp/tcp的发送和接收
InetAddress UDP例程: 发送数据: 接收数据: 结果: TCP例程: 发送数据: 接收数据: 结果:
- 使用cordova,使html5也能像IOS,Android那样可以 调取手机的相机拍照功能
一,我们在使用html5的技术开发手机app时,并不能像IOS,Android那样可以调取手机原生的相机功能,这是我们就要借助一些插件来时实现. 二,安装Cordoba的相机插件 1.在文件目录下,使 ...
- 6374. 【NOIP2019模拟2019.10.04】结界[生与死的境界]
题目 题目大意 给你一个数列,每次可以选择任意两个相邻的数\(x\)和\(y\),将其删去,并在原来位置插入\(x+2y\). 每次询问一个区间,对这个区间进行上述操作.求最后剩下的数最大是多少. 答 ...
- SpringBoot项目部署初体验【Docker】
前言 一个微服务项目,小到几个模块,大到十几二十几个模块,每个模块都是单独的SpringBoot工程,这么多模块的部署,部署成本真的很高,而且每个服务的部署,都是手动部署,打成war或者jar ?,一 ...
- PHP FILTER_SANITIZE_EMAIL 过滤器
定义和用法 FILTER_SANITIZE_EMAIL 过滤器删除字符串中所有非法的 e-mail 字符. 该过滤器允许所有的字母.数字以及 $-_.+!*'{}|^~[]`#%/?@&= N ...
- NX二次开发-Block UI C++界面Specify Point(指定点)控件的获取(持续补充)
Specify Point(指定点)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); / ...