PHP魔术方法__GET、__SET使用实例
深入PHP魔术方法:__GET与__SET的实战演示
在PHP的世界中,存在着两种强大的魔术方法:__GET和__SET,它们在你需要访问或修改对象的属性时发挥着至关重要的作用。今天,我们将通过一个生动的实例来深入了解这两个方法的工作机制。
让我们定义一个名为Example的类。在这个类中,我们定义了一些属性,包括公有的、受保护的以及私有的。
```php
class Example {
// 公有的属性,任何类都可以访问
public $public = 'pub';
// 受保护的属性,只能在子类中访问
protected $protected = 'pro';
// 私有的属性,仅在此类中可访问
private $private = 'pri';
// 当尝试访问对象中不存在的属性或私有/受保护的属性时,会自动调用__get()方法
public function __get($name) {
return '尝试获取属性:' . $name;
}
// 当给对象的属性赋值时,如果属性不存在或属于私有/受保护的属性,会自动调用__set()方法
public function __set($name, $value) {
echo "设置属性:{$name},值为:{$value}";
}
}
// 创建Example类的实例
$example = new Example;
// 尝试访问对象的属性
echo $example->public . ""; // 输出:pub
echo $example->protected . ""; // 输出:尝试获取属性:protected(因为protected属性不可直接访问)
echo $example->private . ""; // 输出:尝试获取属性:private(同上)
echo $example->other . ""; // 输出:尝试获取属性:other(对象中没有名为other的属性)
echo '
';
// 给对象的属性赋值,触发__set()方法
$example->public = 'lic'; // 成功赋值,不会触发__set(),因为public属性可直接访问
$example->protected = 'tec'; // 设置受保护的属性,触发__set()方法
$example->private = 'vat'; // 设置私有的属性,触发__set()方法(尽管不可直接访问)
$example->other = 'er'; // 设置一个不存在的属性,触发__set()方法
echo '
';
echo '打印 public 属性:' . $example->public; // 输出:打印 public 属性:lic(成功赋值)
```
执行上述代码后,您将看到如下结果:输出对象的公有属性值,以及在尝试访问私有和受保护属性时触发的__get()方法的响应。在通过__set()方法设置属性值时,将显示相应的设置信息。这些输出有助于我们直观地了解这两个魔术方法的工作过程。现在您已经了解了如何在实际编程中使用它们来增强对象的功能和安全性。希望这个例子能够帮助您更好地理解和应用这两个魔术方法!
编程语言
- PHP魔术方法__GET、__SET使用实例
- ASP.NET MVC4入门教程(九):查询详细信息和删除
- PHP中的浅复制与深复制的实例详解
- is_uploaded_file函数引发的不能上传文件问题
- angular.js和vue.js中实现函数去抖示例(debounce)
- PHP实现QQ登录的开原理和实现过程
- 优化 MySQL 3 个简单的小调整
- 不用图片作背景CSS做的小灯笼效果_练习用
- PHP cURL获取微信公众号access_token的实例
- Angular2平滑升级到Angular4的步骤详解
- 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例
- Node.js数据库操作之查询MySQL数据库(二)
- PHP合并数组的2种方法小结
- JS实现从顶部下拉显示的带动画QQ客服特效代码
- asp.net core新特性之TagHelper标签助手
- vue实现简单实时汇率计算功能