isset与get 魔术方法的区别
时间: 2024-03-23 20:38:39 浏览: 56
isset() 是 PHP 内置函数,用于检查一个变量是否已经设置并且非 NULL。而 __get() 是 PHP 魔术方法之一,用于在访问一个对象的不存在或不可访问属性时被自动调用。它们之间的区别在以下几点:
1. isset() 用于检查变量是否已经设置并且非 NULL,而 __get() 用于获取一个对象的不存在或不可访问属性的值。
2. isset() 是 PHP 内置函数,而 __get() 是 PHP 魔术方法之一,它们是两种不同的机制。
3. isset() 适用于任何类型的变量,包括基本类型和对象,而 __get() 只适用于对象的属性。
举个例子,如果我们有一个类 Person,其中有一个私有属性 $name,我们可以在类中定义 __get() 方法来处理对 $name 属性的访问。
```
class Person {
private $name = 'Tom';
public function __get($name) {
return $this->$name;
}
}
$person = new Person();
echo $person->name; // 输出:Tom
```
在上面的例子中,当我们尝试访问 $person 对象的 $name 属性时,由于 $name 是私有属性,无法直接访问,此时 __get() 方法会被调用,并返回相应的属性值。
阅读全文