前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP- 复合数据类型-对象的特殊方法和属性

PHP- 复合数据类型-对象的特殊方法和属性

原创
作者头像
堕落飞鸟
发布于 2023-04-25 16:05:24
发布于 2023-04-25 16:05:24
44600
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

__construct() 方法:这个方法是在对象创建时自动调用的,用来初始化对象的属性。如果你没有显式地定义这个方法,PHP 会自动创建一个空的 __construct() 方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person {
  public $name;
  protected $age;

  function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }
}

$person = new Person("Tom", 25);
echo $person->name . "<br>"; // 输出:Tom
echo $person->age . "<br>"; // 报错,受保护属性不可以在外部访问

__destruct() 方法:这个方法是在对象被销毁时自动调用的,用来清理对象的资源。如果你没有显式地定义这个方法,PHP 会自动创建一个空的 __destruct() 方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person {
  public $name;
  protected $age;

  function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }

  function __destruct() {
    echo "Object destroyed.";
  }
}

$person = new Person("Tom", 25);
// 输出:Object destroyed.

__get() 方法:这个方法是在访问一个不存在或不可访问的属性时自动调用的,用来返回一个默认值或触发一个错误。它接受一个参数,表示被访问的属性的名称。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person {
  public $name;
  protected $age;

  function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }

  function __get($prop) {
    echo "Property $prop not found.";
  }
}

$person = new Person("Tom", 25);
echo $person->name . "<br>"; // 输出:Tom
echo $person->age . "<br>"; // 输出:Property age not found.

__set() 方法:这个方法是在尝试给一个不存在或不可访问的属性赋值时自动调用的,用来设置一个默认值或触发一个错误。它接受两个参数,第一个参数表示被赋值的属性的名称,第二个参数表示要赋的值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person {
  public $name;
  protected $age;

  function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }

  function __set($prop, $value) {
    echo "Cannot set property $prop.";
  }
}

$person = new Person("Tom", 25);
$person->name = "Jerry"; // 输出:Jerry
$person->age = 30; // 输出:Cannot set property age.

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档