PHP面向对象-对象属性的访问和修改

2023-04-27 20:06:09 浏览数 (1)

访问对象属性

可以使用对象实例的箭头运算符 -> 来访问对象属性。这个运算符后面跟着属性名。例如,如果有一个名为 $person 的对象实例,它有一个名为 $name 的属性,那么可以这样访问它:

代码语言:javascript复制
$person->name;

这将返回 $person 对象的 $name 属性的值。

如果 $name 属性是公共的,可以从任何位置访问它。但是,如果 $name 属性是私有的,就必须使用类的访问器方法来访问它。例如,如果有一个名为 $age 的私有属性,可以使用一个名为 getAge() 的公共方法来访问它:

代码语言:javascript复制
class Person {
    private $age;
    public function getAge() {
        return $this->age;
    }
}

在上面的示例中,$age 属性是私有的,所以不能从类的外部直接访问它。但是,我们定义了一个名为 getAge() 的公共方法,该方法返回 $age 属性的值。可以使用这个方法来访问 $age 属性,如下所示:

代码语言:javascript复制
$person->getAge();

修改对象属性

可以使用相同的箭头运算符来修改对象属性。例如,可以将一个对象的 $name 属性设置为 "John",如下所示:

代码语言:javascript复制
$person->name = "John";

如果 $name 属性是私有的,就必须使用类的修改器方法来修改它。例如,如果有一个名为 $age 的私有属性,可以使用一个名为 setAge() 的公共方法来修改它:

代码语言:javascript复制
class Person {
    private $age;
    public function setAge($newAge) {
        $this->age = $newAge;
    }
}

在上面的示例中,我们定义了一个名为 setAge() 的公共方法,它接受一个参数 $newAge,用于将 $age 属性设置为新的值。可以使用这个方法来修改 $age 属性,如下所示:

代码语言:javascript复制
$person->setAge(30);

示例

下面是一个更完整的示例,演示如何创建一个简单的 Person 类并访问和修改其属性:

代码语言:javascript复制
class Person {
    public $name;
    private $age;
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
    public function getAge() {
        return $this->age;
    }
    public function setAge($newAge) {
        $this->age = $newAge;
    }
}

// 创建一个 Person 对象
$person = new Person("John", 30);

// 访问和修改属性
echo $person->name; // 输出 "John"
echo $person->getAge(); // 输出 30
$person->setAge(40); // 修改 $age 属性
echo $person->getAge(); // 输出 40

在上面的示例中,我们首先使用 new 关键字创建了一个名为 $person 的 Person 对象,并将它的 $name 属性设置为 "John",$age 属性设置为 30。接着我们使用 echo 语句来输出 $person 的 $name 属性和 getAge() 方法返回的 $age 属性值。然后我们使用 setAge() 方法将 $age 属性设置为 40,再次使用 getAge() 方法输出 $age 属性的新值。

php

0 人点赞