PHP

PHP 知识量:7 - 20 - 67

6.2 php对象的示例><

类和对象的示例代码- 6.2.1 -

类person的示例如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        class person {
            private $name;
            private $age = 30;
            private $sex = 'male';
            //构造函数
            function __construct($setname) {
                $this->name = $setname;
            }
            //10年后年龄计算
            function after10yesrs() {
                $this->age += 10;
            }
            //显示当前年龄
            function age() {
                echo "$this->age";
            }
        }
        //实例化类person
        $bob = new person('bob');
        //打印年龄
        $bob->age();
        echo "<br>After 10 years:<br>";
        //计算10年后年龄
        $bob->after10yesrs();
        //打印年龄
        $bob->age();
        ?>
    </body>
</html>

类和对象的代码解析- 6.2.2 -

1、类person定义的基本内容如下:

  • 类定义通过关键字class开始,后面的“person”为类的名称,大括号内为类的定义范围。

  • 三个变量$name、$age、$sex为类的属性,前面的“private”表示属性是私有的(外部不可直接访问),属性可以进行初始化,也可以不赋值。

  • 构造函数是__construct(),它的名称是固定的,construct前面有两个“_”。每次类被实例化时,就会调用一次构造函数,即函数内的代码会被执行一次。构造函数可以接受参数,类person的构造函数将参数$setname的值赋值给了属性$name。

  • 变量$this是php的保留关键字,当类被实例化后,它指向对象本身。可以使用$this引用对象的属性或函数,例如 $this->name。

  • after10yesrs()是类person的普通函数,用于实现属性$age的加10操作。类中函数的定义是通过关键字function开始的,后跟函数名和大括号,大括号内就是函数的函数体。

2、要想使用定义好的类person,就需要实例化一个对象副本,在以上代码中:

  • 通过new关键字实例化类person,实际上是调用了类person的构造函数__construct(),并对其传递了参数值“bob”,实例化的对象赋值给了变量$bob。

  • 通过“->”的方式调用对象的函数或属性,$bob->age() 的意思就是调用对象的age()函数,打印对象属性$age的当前值“30”。

  • $bob->after10yesrs()的意思是调用对象的after10yesrs()函数,调用后,对象的属性$age值加10变为“40”。

  • 通过$bob->age()再次的调用,打印对象属性$age的当前值,因为已经加10,所以当前值打印为“40”。