Home Backend Development PHP Tutorial PHP introductory tutorial - object-oriented_PHP tutorial

PHP introductory tutorial - object-oriented_PHP tutorial

Jul 13, 2016 pm 05:16 PM
php under Getting Started Tutorial function object I method kind For

In my opinion, object-oriented means various PHP classes, methods, and functions. Now I will introduce to you an introductory tutorial on object-oriented PHP. If you are interested, you can refer to it.

The first case: When the subclass does not define a constructor, it is inherited by default.

Second case: If the subclass defines a constructor, it will not be inherited.

For 4.x, if the parent class happens to define a function with the same name of the subclass, it will be regarded as the constructor of the subclass:

The code is as follows Copy code
 代码如下 复制代码

class A
{
    function A()
    {
      echo "I am the constructor of A.
n";
    }

    function B()
    {
        echo "I am a regular function named B in class A.
n";
        echo "I am not a constructor in A.
n";
    }
}

class B extends A
{
    function C()
    {
        echo "I am a regular function.
n";
    }
}

//php4 will call B()
$b = new B;

class A
{
function A()
{
echo "I am the constructor of A.
n";
}

function B()
{
echo "I am a regular function named B in class A.
n";
echo "I am not a constructor in A.
n";
}
}

class B extends A
{
function C()
{
echo "I am a regular function.
n";
}
}

//php4 will call B()
$b = new B;

The above code will call A but not B() in php5

PHP object-oriented: interface example

We design an online sales system. The user part is designed as follows:

Divide users into three types: NormalUser, VipUser, and InnerUser.

Requires the calculation of the price of the product purchased by the user based on the user's different discounts.
 代码如下 复制代码

/*
* 定义了 User接口.
* 和子类 NormalUser,VipUser,InnerUser
*/
//User接口,定义了三个抽象方法.
interface User{
public function getName();
public function setName($_name);
public function getDiscount();
}
abstract class AbstractUser implements User{
private $name = ""; //名字
protected $discount = 0; //折扣
protected $grade = ""; //级别

public function __construct($_name){
$this->setName($_name);
 }
 public function getName(){
  return $this->name;
 }
 public function setName($_name){
  $this->name = $_name;
 }
 public function getDiscount(){
  return $this->discount;
 }
 
 public function getGrade(){
  return $this->grade;
 }
}
class NormalUser extends AbstractUser  { 
 protected  $discount = 1.0;
 protected  $grade = "NormalUser";
}

class VipUser extends AbstractUser {
 protected  $discount = 0.8;
 protected  $grade = "VipUser";
}

class InnerUser extends AbstractUser {
 protected  $discount = 0.7;
 protected  $grade = "InnerUser";
}
?>

And ask to reserve space for future expansion and maintenance. The user part first declares an interface User, and users are all implementations of User. user.php
The code is as follows Copy code
/*
* Defines the User interface.
* and subclasses NormalUser, VipUser, InnerUser
*/
//User interface defines three abstract methods.
interface User{
public function getName();
public function setName($_name);
public function getDiscount();
}
abstract class AbstractUser implements User{
private $name = ""; //name
protected $discount = 0; //Discount
protected $grade = ""; //Level

public function __construct($_name){
$this->setName($_name);
}
public function getName(){
return $this->name;
}
public function setName($_name){
$this->name = $_name;
}
public function getDiscount(){
return $this->discount;
}

public function getGrade(){
return $this->grade;
}
}
class NormalUser extends AbstractUser {
protected $discount = 1.0;
protected $grade = "NormalUser";
} class VipUser extends AbstractUser {
protected $discount = 0.8;
protected $grade = "VipUser";
} class InnerUser extends AbstractUser {
protected $discount = 0.7;
protected $grade = "InnerUser";
}
?>

Regarding the product, we have designed it as follows.

Declare an interface Product, and then inherit the Book interface from Product.

The books sold online are finally the BookOnline class that implements the Book interface.

Product.php

The code is as follows Copy code
 代码如下 复制代码

/*与产品相关的类放.*/
Interface Product{ //定义产品接口
public function getProductName();
public function getProductPrice();
}

interface Book extends Product { // book是产品的一个分类
public function getAuthor();
}

class BookOnline implements Book{ // 定义book类.
private $productName; // 产品名
private $productPrice; // 产品价格
private $author; //作者

public function __construct($_bookName){
$this->productName = $_bookName;
  //这里放置相关初始化的代码.
  //与数据库关联的代码.
 }
 
 public function getProductName(){
  return $this->productName;
 }
 
 public function getProductPrice(){
  //这里从数据库读取价格.
  //假设价格是 100元.
  $this->productPrice = 100;
  return $this->productPrice;
 }
 
 public function getAuthor(){
  //从数据库里面取值.
  return $this->author;
 } 
}
?>

/*Product-related categories.*/
Interface Product{ //Define product interface
public function getProductName();
public function getProductPrice();
}

interface Book extends Product { // book is a category of product
public function getAuthor();
}
代码如下 复制代码

include_once("User.php");
include_once("Product.php");
//买了产品到底多少钱呢?
class ProductSettle{
public static function finalPrice(User $_user,Product $_product,$number = 1){
$price = $_user->getDiscount() * $_product->getProductPrice() * $number;
  return $price;
 }
}
?>

class BookOnline implements Book{ // Define book class.
private $productName; // product name
private $productPrice; // product price
private $author; //Author

public function __construct($_bookName){
$this->productName = $_bookName;
//Place the relevant initialization code here.
//Code associated with the database.
}

public function getProductName(){
Return $this->productName;
}

public function getProductPrice(){
//Read the price from the database here.
//Suppose the price is 100 yuan.
$this->productPrice = 100;
return $this->productPrice;
}

public function getAuthor(){
//Get the value from the database.
return $this->author;
}
}
?> Regarding settlement, we use an independent settlement class and use static methods to do calculations. Product settlement. Pay attention to parameter types.
The code is as follows Copy code
include_once("User.php");
include_once("Product.php");
//How much did it cost to buy the product?
class ProductSettle{
public static function finalPrice(User $_user,Product $_product,$number = 1){
$price = $_user->getDiscount() * $_product->getProductPrice() * $number;
return $price;
}
}
?>

The example below is the implementation. You can analyze it yourself.

The code is as follows
 代码如下 复制代码

include_once("./class/User.php");
include_once("./class/Product.php");
include_once("./class/ProductSettle.php");

$number = 10;
$book = new BookOnline("设计模式");


$user = new NormalUser("Tom");
$price = ProductSettle::finalPrice($user,$book,$number);
$str = "您好,尊敬的用户 " . $user->getName() . "
";
$str .= "您的级别是 ". $user->getGrade() .",
";
$str .= "您的折扣是 " . $user->getDiscount() . "
";
$str .= "购买 $number 本 《 ". $book->getProductName() ;
$str .=  "》的价格是 $price

";
echo $str;


$user = new vipUser("Tom");
$price = ProductSettle::finalPrice($user,$book,$number);
$str =  "您好,尊敬的用户 " . $user->getName() . "
";
$str .= "您的级别是 ". $user->getGrade() .",
";
$str .= "您的折扣是 " . $user->getDiscount() . "
";
$str .= "购买 $number 本 《 ". $book->getProductName() ;
$str .=  "》的价格是 $price

";
echo $str;

$user = new InnerUser("Tom");
$price = ProductSettle::finalPrice($user,$book,$number);
$str =  "您好,尊敬的用户 " . $user->getName() . "
";
$str .= "您的级别是 ". $user->getGrade() .",
";
$str .= "您的折扣是 " . $user->getDiscount() . "
";
$str .= "购买 $number 本 《 ". $book->getProductName() ;
$str .=  "》的价格是 $price

";
echo $str;
?>

Copy code
include_once("./class/User.php");
include_once("./class/Product.php");
include_once("./class/ProductSettle.php");

$number = 10;
$book = new BookOnline("Design Mode");

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
PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

The Enduring Relevance of PHP: Is It Still Alive? The Enduring Relevance of PHP: Is It Still Alive? Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP vs. Other Languages: A Comparison PHP vs. Other Languages: A Comparison Apr 13, 2025 am 12:19 AM

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP and Python: Different Paradigms Explained PHP and Python: Different Paradigms Explained Apr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

See all articles