Home php教程 php手册 PHP面向对象编程的快速入门

PHP面向对象编程的快速入门

Jun 21, 2016 am 09:02 AM
driver function gt mysql this

 

面向对象编程(OOP)是我们编程的一项基本技能,PHP4对OOP提供了良好的支持。如何使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都是非常有意义的。下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法。

  我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境。和其他编程语言有所不同的是,在PHP中,操作数据库的是一系列的具体功能函数

如果你不使用ODBC接口的话)。这样做虽然效率很高,但是封装却不够。如果有一个统一的数据库接口,那么我们就可以不对程序做任何修改而适用于多种数据库,从而使程序的移植性和跨平台能力都大大提高。

  在PHP中要完成OOP,需要进行对象封装,也就是编写类。我们可以通过生成一个新的SQL类实现对数据库的简单封装。例如:

  

  class SQL

  {

  var Driver; //实际操作的数据库驱动子类

  var connection; //共用的数据库连接变量

  function DriverRegister( d)

  {

  if( d!="")

  {

   include_path = ini_get("include_path");

   DriverFile = include_path."/". d.".php";

  //驱动的存放路径必须在PHP.ini文件中设定的INCLUDE_PATH下

  if( file_exists( DriverFile)) //查找驱动是否存在

  {

  include( DriverFile);

   this->Driver = new d();

  //根据驱动名称生成相应的数据库驱动类

  return true;

  }

  }

  return false; //注册驱动失败

  }

  function Connect( host, user, passwd, database)//连接数据库的函数

  {

   this->Driver->host= host;

   this->Driver->user= user;

   this->Driver->passwd= pas

  swd;

   this->Driver->database= d

  atabase;

   this->connection = this->Driver->Connect();

  }

  function Close()//关闭数据库函数

  {

   this->Driver->close( this->connection);

  }

  function Query( queryStr)//数据库字符串查询函数

  {

  return this->Driver->query( queryStr, this->connection);

  }

  function getRows( res)//查找行

  {

  return this->Driver->getRows( res);

  }

  function getRowsNum( res)//取得行号

  {

  return this->Driver-> getRowsNum ( res);

  }

  }

  ?>

  我们以操作MySQL数据库为例。我们写一个数据库驱动类MySQL,在该类中,我们把有关MySQL数据库操作的函数都做进一步的封装。把包含该类,文件名为MySQL.php的文件放在PHP的系统include_path下,就可以正常地使用了。注意编写数据库驱动文件时,文件名应和类名保持一致。

  Class MySQL

  {

  var host;

  var user;

  var passwd;

  var database;

  function MySQL() //利用构造函数实现变量初始化

  {

   host = "";

   user = "";

   passwd = "";

   database = "";

  }

  function Connect()

  {

   conn = MySQL_connect( this->host, this->user, this->passwd) or

  die("Could not connect to this->host");

  MySQL_select_db( this->database, conn) or

  die("Could not switch to database this->database;");

  return conn;

  }

  function Close( conn)

  {

  MySQL_close( conn);

  }

  function Query( queryStr, conn)

  {

   res =MySQL_query( queryStr, conn) or

  die("Could not query database");

  return res;

  }

  function getRows( res)

  {

   rowno = 0;

   rowno = MySQL_num_rows( res);

  if( rowno>0)

  {

  for( row=0; row rowno; row++)

  {

   rows[ row]=MySQL_fetch_row( res);

  }

  return rows;

  }

  }

  function getRowsNum( res)

  {

   rowno = 0;

   rowno = mysql_num_rows( res);

  return rowno;

  }

  }

  ?>

  同样我们要封装其他的“数据库驱动”到我们的SQL类中,只需要建立相应的类,并以同名命名驱动文件,放到PHP的include目录就可以了。

  完成封装以后,就可以在PHP中按照OOP的思想来实现对数据库的编程了。

  Include(“SQL.php”);

   sql = new SQL; //生成新的Sql对象

  if( sql-> DriverRegister(“MySQL”)) //注册数据库驱动

  {

   sql->Connect(“localhost”,”root”,””,”test”);

   res= sql->query(“select * from test”); //返回查询记录集

   rowsnum = sql->getRowsNum( res);

  if( rowsnum > 0)

  {

   rows = sql->getRows( res);

  foreach( rows as row) //循环取出记录集内容

  {

  foreach( row as field){

  print field;}

  }

  }

   sql->Close();

  }

  ?>

  在实际应用中,我们还可以根据实际需求对各种对象类做进一步扩展。在PHP中,还提供了一系列复杂的OOP方法,例如继承,重载,引用,串行化等等。充分调动各种方法并灵活运用,就能够使你的网站更合理和结构化,开发和维护也更容易。




Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1666
14
PHP Tutorial
1273
29
C# Tutorial
1253
24
Laravel Introduction Example Laravel Introduction Example Apr 18, 2025 pm 12:45 PM

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

MySQL and phpMyAdmin: Core Features and Functions MySQL and phpMyAdmin: Core Features and Functions Apr 22, 2025 am 12:12 AM

MySQL and phpMyAdmin are powerful database management tools. 1) MySQL is used to create databases and tables, and to execute DML and SQL queries. 2) phpMyAdmin provides an intuitive interface for database management, table structure management, data operations and user permission management.

MySQL vs. Other Programming Languages: A Comparison MySQL vs. Other Programming Languages: A Comparison Apr 19, 2025 am 12:22 AM

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages ​​such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages ​​have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

Solve database connection problem: a practical case of using minii/db library Solve database connection problem: a practical case of using minii/db library Apr 18, 2025 am 07:09 AM

I encountered a tricky problem when developing a small application: the need to quickly integrate a lightweight database operation library. After trying multiple libraries, I found that they either have too much functionality or are not very compatible. Eventually, I found minii/db, a simplified version based on Yii2 that solved my problem perfectly.

Laravel framework installation method Laravel framework installation method Apr 18, 2025 pm 12:54 PM

Article summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.

Solve MySQL mode problem: The experience of using the TheliaMySQLModesChecker module Solve MySQL mode problem: The experience of using the TheliaMySQLModesChecker module Apr 18, 2025 am 08:42 AM

When developing an e-commerce website using Thelia, I encountered a tricky problem: MySQL mode is not set properly, causing some features to not function properly. After some exploration, I found a module called TheliaMySQLModesChecker, which is able to automatically fix the MySQL pattern required by Thelia, completely solving my troubles.

Explain the purpose of foreign keys in MySQL. Explain the purpose of foreign keys in MySQL. Apr 25, 2025 am 12:17 AM

In MySQL, the function of foreign keys is to establish the relationship between tables and ensure the consistency and integrity of the data. Foreign keys maintain the effectiveness of data through reference integrity checks and cascading operations. Pay attention to performance optimization and avoid common errors when using them.

Compare and contrast MySQL and MariaDB. Compare and contrast MySQL and MariaDB. Apr 26, 2025 am 12:08 AM

The main difference between MySQL and MariaDB is performance, functionality and license: 1. MySQL is developed by Oracle, and MariaDB is its fork. 2. MariaDB may perform better in high load environments. 3.MariaDB provides more storage engines and functions. 4.MySQL adopts a dual license, and MariaDB is completely open source. The existing infrastructure, performance requirements, functional requirements and license costs should be taken into account when choosing.

See all articles