PHP object-oriented overloading

不言
Release: 2023-03-29 22:22:01
Original
1108 people have browsed it

This article mainly introduces the object-oriented overloading of PHP, which has certain reference value. Now I share it with you. Friends in need can refer to it.

Definition:

1 ) dynamically "creates" the properties and methods of a class.

2) Achieved through magic method.

3) When calling a property or method of a class that is undefined or invisible in the current environment, the overloaded method will be called.

Attribute overloading

__set      赋值

__get      读取

__isset    判断是否存在

__unset    销毁
Copy after login

Example

// 属性的重载
class Person
{
    public $name = '小芳';
    protected $age = 18;

    public function __get($n)
    {
        //echo '试图读取不可访问的属性'.$n;

        if( $n == 'age'){
            return $this -> age;
        }else{
            return '你要查户口吗?';
        }
    }

    public function __set($n,$v)
    {
        //echo '试图设置不可访问的属性','
'; $this -> $n = $v; } public function __isset($n) { echo '判断不可访问的属性'.$n.'是否存在','
'; } public function __unset($n) { echo '销毁不可访问的属性'.$n,'
'; } } $p1 = new Person(); // 读取 //echo $p1 -> age,'
'; //echo $p1 -> xxx,'
'; // 设置 //$p1 -> age = 30; //echo $p1 -> age,'
'; // 判断存在与否 isset($p1 -> age); // 销毁 unset($p1 -> age);
Copy after login

Method overloading

__call         调用不可访问的普通方法

__callStatic   调用不可访问的静态方法
Copy after login

Special note that when __callStatic is defined, it must be defined as a static method.

Example

 func([1,2,3]);

$c1 -> func2([1,2,3]);
Copy after login

Related recommendations:

php object-oriented encapsulation

##php Object-oriented magic methods

php object-oriented static methods, properties and constants

The above is the detailed content of PHP object-oriented overloading. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!