PHP Tutorials - Herong's Tutorial Examples - v5.17, by Herong Yang
What Is Object Cloning
This section describes what is object cloning - An easy way of creating a new object and copying all properties from an old object. PHP also allows you to implement __clone() method to modify properties of the newly created object.
What Is Object Cloning? Object cloning is an easy way of creating a new object and copying all properties from an old object. PHP also allows you to implement __clone() method to modify properties of the newly created object.
PHP uses the "clone" operator to clone an object and applies the following rules:
For example, the following tutorial example provides class "MyCarQuote" that shows how to use "__clone" method to alter the behavior of "clone" operation (The quote will go up by $400.00 each time you clone the object).
<?php /* MyCarQuote.php #- Copyright 2015 (c) HerongYang.com. All Rights Reserved. */ class MyCarQuote { public $maker = "BMW"; public $model = "i8"; public $year = "2015"; public $color = "Silver"; public $engine = "1.5L 3-cylinder"; public $horsepower = "357 HP"; private $quote = 123400.0; private $cost = 120000.0; public function __clone() { $this->quote += 400.00; } public function getQuote() { return $this->quote; } } $car1 = new MyCarQuote(); echo "First car specs: \n"; foreach($car1 as $key => $value) { echo " $key: $value\n"; } $q = $car1->getQuote(); echo " -- quote: \$".intval($q/1000).",".($q%1000).".00\n"; $car2 = clone $car1; echo "Second car specs: \n"; foreach($car2 as $key => $value) { echo " $key: $value\n"; } $q = $car2->getQuote(); echo " -- quote: \$".intval($q/1000).",".($q%1000).".00\n"; ?>
If you run the above tutorial example, you will get something like this:
herong> \php\php MyCarQuote.php First car specs: maker: BMW model: i8 year: 2015 color: Silver engine: 1.5L 3-cylinder horsepower: 357 HP -- quote: $123,400.00 Second car specs: maker: BMW model: i8 year: 2015 color: Silver engine: 1.5L 3-cylinder horsepower: 357 HP -- quote: $123,800.00
Table of Contents
Introduction and Installation of PHP
PHP Data Types and Data Literals
Variables, References, and Constants
Expressions, Operations and Type Conversions
Conditional Statements - "if" and "switch"
Loop Statements - "while", "for", and "do ... while"
Function Declaration, Arguments, and Return Values
Interface with Operating System
►Introduction of Class and Object
What Is a Superclass and a Subclass
What Is an Overloaded Property
What Is Object Property Iteration
Updating Variables Who Share an Object
Passing Objects as Function Arguments
Integrating PHP with Apache Web Server
Retrieving Information from HTTP Requests
Creating and Managing Sessions in PHP Scripts
Sending and Receiving Cookies in PHP Scripts
Controlling HTTP Response Header Lines in PHP Scripts
MySQL Server Connection and Access Functions
Functions to Manage Directories, Files and Images
SOAP Extension Function and Calling Web Services
SOAP Server Functions and Examples
Localization Overview of Web Applications
Using Non-ASCII Characters in HTML Documents
Using Non-ASCII Characters as PHP Script String Literals
Receiving Non-ASCII Characters from Input Forms
"mbstring" Extension and Non-ASCII Encoding Management
Managing Non-ASCII Character Strings with MySQL Servers
Parsing and Managing HTML Documents
Configuring and Sending Out Emails
Managing PHP Engine and Modules on macOS