PHP object-oriented programming example study notes

WBOY
Release: 2016-08-08 09:27:05
Original
992 people have browsed it

1. __get() and __set() methods

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
        class animal{
            private $name;
            private $color;
            private $age;
            public function __get($property_name) {
                echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";
                if(isset($this->$property_name)){
                    return $this->$property_name;
                }
                else
                {
                    return NULL;
                }
            }
            
            public function __set($propertyname, $value) {
                echo "在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>";
                $this->$propertyname = $value;
            }
        }
        $pig = new animal();
        $pig->name = "猪";
        $pig->color = "白色";
        $pig->age = "1岁";
        echo "称呼:".$pig->name."<br>";
        echo "颜色:".$pig->color."<br>";
        echo "年龄:".$pig->age."<br>";
        ?>
    </body>
</html>
Copy after login

2. __call() method

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
        class Test{
            function __call($function_name, $args) {
                print "你所调用的函数:$function_name(参数:";
                print_r($args);
                print ")不存在!<br>\n";
            }
        }
        $test = new Test();
        $test->demo("one", "two", "three");
        echo "this  is a test<br>";
        ?>
    </body>
</html>
Copy after login

3. clone object

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
         class animal{
             //下面是动物的成员属性
             public $name = &#39;&#39;;//成员属性name
             public $color = &#39;&#39;; //成员属性color
             public $age = &#39;&#39;; //成员属性size
             
             //定义一个构造方法, 参数为$name、$color和$age
             function __construct($name, $color, $age) {
                 //通过构造方法传进来的$name 给成员属性$this->name赋初值
                 $this->name = $name;
                 //通过构造方法传进来的$color 给成员属性$this->color赋初值
                 $this->color = $color;
                 //通过构造方法传进来的$age 给成员属性$this->age赋初值
                 $this->age = $age;
             }
             
             function getInfo(){
                 echo '动物的名字叫做'.$this->name.',动物的颜色是'.$this->color.',动物的年龄是'.$this->age.'.';
             }
}
$pig = new animal("猪", "白色", "1岁");
//使用clone克隆新对象pig2,和$pig对象具有相同的属性和方法
$pig2 = clone $pig;
$pig2->getInfo();
?>
    </body>
</html>
Copy after login

4. __clone() method

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
         class animal{
             //下面是动物的成员属性
             public $name = &#39;&#39;;//成员属性name
             public $color = &#39;&#39;; //成员属性color
             public $age = &#39;&#39;; //成员属性size
             
             //定义一个构造方法, 参数为$name、$color和$age
             function __construct($name, $color, $age) {
                 //通过构造方法传进来的$name 给成员属性$this->name赋初值
                 $this->name = $name;
                 //通过构造方法传进来的$color 给成员属性$this->color赋初值
                 $this->color = $color;
                 //通过构造方法传进来的$age 给成员属性$this->age赋初值
                 $this->age = $age;
             }
             
             function getInfo(){
                 echo '动物的名字叫做'.$this->name.',动物的颜色是'.$this->color.',动物的年龄是'.$this->age.'.';
             }
             function __clone() {
                 //$this指的复本pig2,而$that是指向原本pig,这样就在本方法中改变了复本的属性;
                 
                 $this->name = "假的$this->name";
                 $this->age = '2岁';
             }
}
$pig = new animal("猪", "白色", "1岁");
//使用clone克隆新对象pig2,和$pig对象具有相同的属性和方法
$pig2 = clone $pig;
$pig->getInfo();
$pig2->getInfo();
?>
    </body>
</html>
Copy after login

5. __toString() method

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here 
        //Declare a simple class
        class TestClass{
            public $foo;
            public function __construct($foo) {
                $this->foo = $foo;
            }
            
            public function __toString() {
                return $this->foo;
            }
        }
        $class = new TestClass('HelloWorld');
        echo $class;
        ?>
    </body>
</html>
Copy after login

6. const keyword

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
        class MyClass{
            const constant = &#39;constant value&#39;;
            function showConstant(){
                echo self::constant."\n";
            }
        }
        echo MyClass::constant."\n";
        $class = new MyClass();
        $class->showConstant();
        ?>
    </body>
</html>
Copy after login

The above introduces the PHP object-oriented programming example study notes, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.

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