前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >PHP面向对象-对象属性的访问和修改

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

原创
作者头像
堕落飞鸟
发布2023-04-27 20:06:09
发布2023-04-27 20:06:09
2.1K00
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

访问对象属性

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

代码语言:javascript
代码运行次数:0
复制
$person->name;

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

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

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

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

代码语言:javascript
代码运行次数:0
复制
$person->getAge();

修改对象属性

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

代码语言:javascript
代码运行次数:0
复制
$person->name = "John";

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

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

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

代码语言:javascript
代码运行次数:0
复制
$person->setAge(30);

示例

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

代码语言:javascript
代码运行次数:0
复制
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 属性的新值。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 访问对象属性
  • 修改对象属性
  • 示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档