PHP Object-Oriented Programming QuickStart _php Tutorial

Source: Internet
Author: User
Object-oriented programming (OOP) is a fundamental skill of our programming, and PHP4 provides good support for OOP. How to use the idea of OOP for advanced programming of PHP is very meaningful for improving PHP programming ability and planning a good web development architecture. In this example, we illustrate the practical meaning and application of programming oop using PHP.

When we do a Web site with a database background, we will take into account that the program needs to be applied to different environments. Unlike other programming languages, in PHP, the operations database is a series of specific function functions (if you do not use the ODBC interface). This is highly efficient, but the package is not enough. If there is a unified database interface, then we can not make any changes to the program to apply to a variety of databases, so that the program's portability and cross-platform capabilities are greatly improved.

To complete OOP in PHP, object encapsulation is required, which is to write classes. We can implement a simple encapsulation of the database by generating a new SQL class. For example:

<?
Class SQL
{
var $Driver; Actual operation of the database-driven subclass
var $connection; Shared Database connection variables
function Driverregister ($d)
{
if ($d! = "")
{
$include _path = Ini_get ("include_path");
$DriverFile = $include _path. " /". $d.". PHP ";
The drive's storage path must be set in the php.ini file include_path
if (file_exists ($DriverFile))//Find out if the driver is present
{
Include ($DriverFile);
$this->driver = new $d ();
Generate the corresponding database driver class based on the driver name
return true;
}
}
return false; Registration Driver failed
}
Function Connect ($host, $user, $passwd, $database)//functions connected to the 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 ()//Close database functions
{
$this->driver->close ($this->connection);
}
function query ($QUERYSTR)//database string query functions
{
return $this->driver->query ($queryStr, $this->connection);
}
function GetRows ($res)//Find row
{
return $this->driver->getrows ($res);
}
function Getrowsnum ($res)//Get line number
{
return $this->driver-> getrowsnum ($res);
}
}
? >

Let's take the MySQL database operation as an example. We write a database-driven MySQL class in which we encapsulate the functions of MySQL database operations further. Put the file containing the class, file name mysql.php in the PHP system include_path, it can be used normally. Note When you write a database driver file, the file name should be consistent with the class name.

<?
Class MySQL
{
var $host;
var $user;
var $passwd;
var $database;
function MySQL ()//using constructors to implement variable initialization
{
$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;
}
}
? >
Similarly, we want to encapsulate the other "database-driven" into our SQL class, only need to establish the corresponding class, and name the driver with the same name, put in the PHP include directory is OK.

Once the encapsulation is complete, the database can be programmed in PHP in accordance with the idea of OOP.

<?
Include ("sql.php");
$sql = new SQL; To generate a new SQL object
if ($sql-Driverregister ("MySQL"))//Register database driver
{
$sql->connect ("localhost", "root", "" "," Test ");
$res = $sql->query ("SELECT * from Test"); Returning a query record set
$rowsnum = $sql->getrowsnum ($res);
if ($rowsnum > 0)
{
$rows = $sql->getrows ($res);
foreach ($rows as $row)//loop out the contents of the recordset
{
foreach ($row as $field) {
Print $field;}
}
}
$sql->close ();
}
? >

In practical applications, we can further extend the various object classes according to the actual requirements. In PHP, there are also a number of complex OOP methods, such as inheritance, overloading, referencing, serialization, and so on. Making your site more rational and structured, and easier to develop and maintain, can be made possible by fully mobilizing the various methods and using them flexibly.

http://www.bkjia.com/PHPjc/314972.html www.bkjia.com true http://www.bkjia.com/PHPjc/314972.html techarticle Object-oriented programming (OOP) is a fundamental skill of our programming, and PHP4 provides good support for OOP. How to use the idea of OOP for PHP advanced programming, for improving PHP programming ability and ...

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.