Home Backend Development PHP Tutorial Detailed explanation of magic functions in PHP object-oriented development_PHP tutorial

Detailed explanation of magic functions in PHP object-oriented development_PHP tutorial

Jul 13, 2016 am 10:50 AM
php tostring function object open have Detailed explanation For magic

Magic functions in PHP include tostring, call, clone, and autoload. I hope this tutorial will be helpful to all my friends.

Summary of object-oriented development

1. Description and configuration of objects. (can be understood as the output text description of the object)
2. A processing of object method. (It can be understood as customizing a more humane error message when an exception occurs)
3. Application of cloned objects. (It can be understood as cloning another object that is the same as the original object. Note that it is another one.)
4. Method to automatically load objects. (Can be understood as a quote)

1. Object description and configuration

Method name: __tostring()
Format:

The code is as follows Copy code
class My {
 代码如下 复制代码
class My {
function __tostring() {
return "这里写这个类的文字描述"; //要用return,echo会出错。
}
}
$p = new My();
echo $p;
function __tostring() {

return "Write a text description of this class here"; //If you use return, echo will make an error.

}
 代码如下 复制代码
class My {
function __toString() {
return "这个类的作用是,保卫地球。";
}
}
$p = new My();
echo $p;
?>
}

$p = new My(); echo $p;

Example:
The code is as follows Copy code
class My {
function __toString() {
return "The purpose of this class is to protect the earth.";

}
代码如下 复制代码
class My {
function __call($n,$v) {
echo "错误的方法名:".$n;
echo "错误的参数:".$v;
}
}
}

$p = new My();

echo $p;
代码如下 复制代码

class My {
function __toString() {
return "这个类的作用是,保卫地球。";
}

function __call ($n,$v) {
echo "错误的方法".$n."
";
    echo "错误的值".print_r($v).""; //值是以数组方式传递的,所以要用print_r。
 }
}
$p = new My();
$p->demo("第一",6);
?>

?>

2. Exception handling of object methods

Exception handling when calling some non-existent object methods allows the program to run normally.
Method name: __call($funname,$arr_value)
Format:

The code is as follows Copy code
class My { function __call($n,$v) {
 代码如下 复制代码
class My {
function __clone() {
echo "克隆时自动调用的函数";
}
}
$a = new My();
$b = clone $a;
echo "Wrong method name:".$n; echo "Wrong parameter:".$v; } }
Example:
The code is as follows Copy code
".$n."
"; echo "Wrong value".print_r($v).""; //The value is passed in an array, so print_r is used. } } $p = new My(); $p->demo("First",6); ?>
3. Cloning of objects Clone can generate two identical objects in memory or upgrade the original object. (It is not a simple assignment, but two blocks of memory are opened in the memory. The cloned and the cloned are two different objects with the same attributes and methods) Method name: __clone() Keyword: clone Format:
The code is as follows Copy code
class My { function __clone() { echo "Function automatically called when cloning"; } } $a = new My(); $b = clone $a;


Example:

$p = new My(); $b = clone $p;
The code is as follows
 代码如下 复制代码

class My {
 public $name = "小猪";
 function __toString() {
  return "这个类的作用是,保卫地球。";
 }

 function __call ($n,$v) {
  echo "错误的方法".$n."
";
    echo "错误的值".print_r($v).""; //值是以数组方式传递的,所以要用print_r。
 }
}
$p = new My();
$b = clone $p;

echo $b->name="小猪头"."
"; //这是克隆并修改后的对象,如果使用 $b = $p,那修改$b->name="小猪头";后,再输出$p,也会被修改。
echo $p->name; //这是原对象,它已经被$b克隆了,其他都一样,但是他们是独立的。
?>

Copy code


class My { public $name = "Little Pig";

function __toString() {
return "The purpose of this class is to protect the earth.";
}

function __call ($n,$v) {
 代码如下 复制代码
function __autoload($class_n) {
include($class_n.".php");
}
$p = new MyPc(); //自动调用执行如下
$d = new demo(); //include("mypc.php")
echo "Wrong method".$n."
";

echo "Wrong value".print_r($v).""; //The value is passed in an array, so print_r is used.

}
 代码如下 复制代码

function __aotoload ($class_name) {
include($class_name.".php"); //写在类外部。
}

$p = new class_name(); //这里实例化的类名就被上面的函数变量 $class_name 替代了,非常方便。
?>

}
echo $b->name="Little Pig Head"."
"; //This is the cloned and modified object. If $b = $p is used, then modify $b-> ;name="Little Pig Head";, and then output $p, it will also be modified.

echo $p->name; //This is the original object, which has been cloned by $b. Everything else is the same, but they are independent.

?> 4. Method of automatically loading objects Quickly get the object name and automatically load it into the current page Method name: __autoload()
Format:
The code is as follows Copy code
function __autoload($class_n) { include($class_n.".php"); } $p = new MyPc(); //The automatic call is executed as follows $d = new demo(); //include("mypc.php") Example:
The code is as follows Copy code
function __aotoload ($class_name) {<🎜> include($class_name.".php"); //Written outside the class. <🎜> }<🎜> <🎜>$p = new class_name(); //The class name instantiated here is replaced by the function variable $class_name above, which is very convenient. <🎜> ?> http://www.bkjia.com/PHPjc/632640.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632640.htmlTechArticleThe magic functions in php include tostring, call, clone and autoload. I hope this tutorial will be useful to you. Friends can help. Summary of object-oriented development 1. Description and configuration of objects...
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

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months 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)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles