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

第一个例子:

  类Test.class.php

  1. <?php
  2. class Test{
  3. public $a=1;
  4. protected $b=2;
  5. private $c=3;
  6. public function fun1(){
  7. //echo "fun1";
  8. //调用fun2
  9. $this->b=789;
  10. $this->fun2();
  11. //echo $this->c;
  12. }
  13. protected function fun2(){
  14. //echo "fun2";
  15. echo $this->b;
  16. }
  17. private function fun3(){
  18. echo "fun3";
  19. }
  20. }

  引用类 text.php

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

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

  1. class Person{
  2. function __construct($name,$sex)
  3. {
  4. $this->name=$name;
  5. $this->sex=$sex;
  6. } //定义类的属性
  7. function showName()
  8. {
  9. echo $this->name; //定义类的showName方法
  10. }
  11. function showSex()
  12. {
  13. echo $this->sex; //定义类的showSex方法
  14. }
  15. }
  16.  
  17. class Worker extends Person{
  18. function __construct($name,$sex,$job)
  19. {
  20. parent::__construct($name,$sex); //调用Person构造 函数,继承Person
  21. }
  22. }

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

  类Db.class.php

  1. <?php
  2. class DB{
  3. protected $conn="";
  4. /*
  5. * 作用:连接数据库,打开 设置交互字符集,选择数据库
  6. * 参数:host username password dbName charset
  7. * 返回值:bool
  8. */
  9. function connect($host,$username,$password,$dbName,$charset='utf8'){
  10. $link=mysql_connect($host,$username,$password);
  11. $this->conn=$link;
  12. if(is_resource($link)){
  13. mysql_set_charset($charset);
  14. $re=mysql_select_db($dbName);
  15. if($re){
  16. return true;
  17. }else{
  18. return false;
  19. }
  20. }else{
  21. return false;
  22. }
  23. }
  24. /*
  25. * 作用:执行sql语句
  26. * 参数:sql语句
  27. * 返回值:update delete 返回影响记录条数
  28. * insert 返回主键id值
  29. * select 返回二维数组
  30. */
  31. function query($sql){
  32. $re=mysql_query($sql);
  33. if($re){
  34. //判断sql语句的类型
  35. if(preg_match("/^update|^delete/i",$sql)){
  36. return mysql_affected_rows();
  37. }else if(preg_match("/^insert/i",$sql)){
  38. return mysql_insert_id();
  39. }else if(preg_match("/^select/i",$sql)){
  40. //返回二维数组
  41. $arr=array();
  42. while($row=mysql_fetch_assoc($re)){
  43. $arr[]=$row;
  44. }
  45. return $arr;
  46. }else{
  47. return $re;
  48. }
  49. }else{
  50. return false;
  51. }
  52. }
  53.  
  54. /*
  55. * 作用:关闭数据库连接
  56. * return:bool
  57. */
  58. function close(){
  59. return mysql_close($this->conn);
  60. }
  61. }

引用类Db.php

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

php面向对象深入理解(一)的更多相关文章

  1. javascript面向对象的理解(一)

    第一次在园子发文: 关于js面向对象的理解: 工厂方式是什么?构造函数是什么?原形链?对象的引用? 1.对象是什么? 在js接触的比较多的就是对象了,比如: var arr = []; arr.num ...

  2. 对面向对象的理解—— SAP电面(1)

    对于C++面向对象的理解 面向对象是在结构化设计方法出现很多问题的情况下应运而生的.结构化设计方法求解问题的基本策略是从功能的角度审视问题域.它将应用程序看成实现某些特定任务的功能模块,其中子过程是实 ...

  3. JavaScript面向对象的理解

    JavaScript面向对象的理解  笔记链接: http://pan.baidu.com/s/1c0hivuS 1:JavaScript 中分两种对象,函数对象和普通对象new Function() ...

  4. 谈个人对avascript面向对象的理解

    javascript,不但是javascript或者是别的语音,大多数都有一句经典的话:一切皆对象. 下面谈谈我个人对面向对象的理解,为什么要用面向对象来写js,这话我思考了很久,最后得出的结论就是: ...

  5. javascript javascript面向对象的理解及简单的示例

    javascript面向对象的理解及简单的示例 零.本节重点: 1.封装: 2.继承: 壹.下面理解: 一. javascript面向对象概念: 为了说明 JavaScript 是一门彻底的面向对象的 ...

  6. js面向对象怎么理解

    js面向对象怎么理解 <一>. 认识对象.首先要认识对象:在编程中,对象(object)是具体的某一个实例,唯一的某一个个体.如:电脑就是一个统称,而你面前的这一台电脑就是对象.而电脑的统 ...

  7. python 面向对象简单理解

    面向对象: 是一种程序设计范型 作用: 提高软件的重用性和灵活性,扩展性 世界万物一切皆为对象,对象即是指由特定状态,特征,行为的实体   知识点一: 代码的重用 举个栗子 比如小月月有了一个女朋友1 ...

  8. Java面向对象的理解

    Java是一门面向对象的编程语言(Object Oriented Programming,OOP), 这个句话是每个学习Java的程序员应该先深刻理解的一句话. 我们之所以将自自然界分解,组织成各种概 ...

  9. OOP 面向对象的理解

    概念 面向对象编程(OOP)是一种编程语言模型,围绕对象是行为.数据.逻辑. 从历史上看,程序被视为一种逻辑程序,它接收输入数据,处理数据并生成输出数据. 基础 面向对象的3大核心思想:封装.继承.多 ...

  10. 谈谈你对Java面向对象的理解

    面向对象,其实是一种思考的思想,是一种思想,而这种思想它早期的思想是面向过程,通过不断的演化变成了现在的面向对象,思想有一个演变形式,早期是面向过程,现在是面向对象. 故事:把大象放进冰箱里,分几步? ...

随机推荐

  1. 【Luogu】【关卡2-5】字符串处理(2017年10月)

    任务说明:这里的字符串处理还会变得更加的有意思,难度也更大.需要好好地思考一下.

  2. bzoj4237稻草人

    题意:给你一个田地,问左下角和右上角有稻草人并且内部除了边界都没有稻草人的矩形数. 标程: #include<bits/stdc++.h> using namespace std; int ...

  3. html中设置一个div可编辑文本

    <div contenteditable="true"></div> <!-- outline: none;设置获取焦点没有高亮边框 -->

  4. c++ 兰姆达表达式

    #include<iostream> using namespace std;   int main() {     int a = 1;     int b = 2;       aut ...

  5. Windows win32 API 类库 硬件

    // 硬件 Win32_Processor, // CPU 处理器 Win32_PhysicalMemory, // 物理内存条 Win32_Keyboard, // 键盘 Win32_Pointin ...

  6. 一维条码Code 128 类型的 A、B、C及Auto的区别

    CODE 128条码是1981年由COMPUTER IDENTICS公司开发的.对128个字符进行标准化的多级别编码.其条码的字符与其表示的数据呈1对1的关系,特点是通过起始字符.代码集字符.转换字符 ...

  7. Vue学习笔记【5】——如何定义一个基本的Vue代码结构

    插值表达式{{}} 和 v-text 默认 v-text 是没有闪烁问题的: v-text会覆盖元素中原本的内容,但是 插值表达式只会替换自己的这个占位符,不会把 整个元素的内容清空 v-cloak ...

  8. Java类的成员之四:代码块.

    3.2类的成员之四:代码块 ①初始化块(代码块)作用:对Java对象进行初始化 ②程序的执行顺序: ③一个类中初始化块若有修饰符,则只能被static修饰,称为静态代码块(static block ) ...

  9. Yii2 使用十一 在设置enablePrettyUrl时候,defaultAction的设置方法

    启用美化Url的功能 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'enableS ...

  10. [Catalan数三连]网格&有趣的数列&树屋阶梯

    如何让孩子爱上打表 Catalan数 Catalan数是组合数学中一个常出现在各种计数问题中的数列. 以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名. 先丢个公式(设第n项为$ ...