一个很简单的PHP面向对象 问题

封装相关函数:

function __get()
这个函数()里面应该填写什么?

function __set($name,$value)
这个函数()里$name位置上填写的必须是类里的属性吗?
$value又是填写什么的呢?
以上2个函数是 类里的。函数是两个下划线,不是自定义函数!function __get() 这个()里我随便填写个跟属性无任何联系的自定义变量都可以,不填写就出错。到底有啥意义呢?
最新回答
一身懵逼正气

2026-05-20 19:42:57

如果不是写在类里 你这个就是一个函数
如果写在类里 你这个就是一个类里的一个方法
function_get()括号里如果没有参数就不要填 直接调用这个函数可以了
括号中间的是参数,意思就是你写这个函数的时候需要外部调入的数据才能完成
function __set($name,$value) 不一定是类里的属性 不是很熟悉对类 是外部传入的参数 比如
$a=1;$b=8;
function _set($a,$b)
{
return $a+$b;
}
$c= _set($a,$b);
这个时候$c就是9
不知道你看懂了没 呵呵
时间枯萎

2026-04-16 22:04:49

<?php
class Test
{
private $a;
private $b;

public function __get($name)
{
if(isset($this->$name)) {
return $this->$name;
}
}

public function __set($name, $value) {
if(isset($this->$name)) {
$this->$name = $value;
}
}
}
?>

__get() 这是个getter,
__set() 这是个setter
用这两个函数是为了方便操作私有属性(private的属性),这也是OO的要求.