PHP类中的__set()和__get()方法用在什么地方?可以用例子说明一下么...
2个回答
展开全部
在PHP类中的__set()和__get()方法是针对protect或private变量的,不针对public变量。因为对protect或 private变量在类外不可直接访问,可在类中定义一个public方法来访问这些变量,而__set()和__get()方法相当于这些public 方法,但是在类外的操作时表面上相当于直接访问,但本质上还是通过__set()和__get()方法体内的判断与操作。对于一个类中有多个 protect或private变量,用一对__set()和__get()方法就可操作,编译器将可自己区别用的是哪个变量(由在类外操作时具体的变量名决定,如$object->$name="sss").
如下:
<?php
class test
{
var $name;
var $age;
function __set($name,$value)
{
$this->$name = $value ;
}
function __get($name)
{
return $this->$name;
}
}
$a = new test();
$a -> name = 5;
echo $a->name . "<br/>" ;
$a -> age = "12";
echo $a->age;
?>
输出结果是,5 和 12。
//php类中静态变量可用一般方法或静态方法来操作,但如果在类中用静态方法,则静态方法中不可有非静态的变量。
如下:
<?php
class test
{
var $name;
var $age;
function __set($name,$value)
{
$this->$name = $value ;
}
function __get($name)
{
return $this->$name;
}
}
$a = new test();
$a -> name = 5;
echo $a->name . "<br/>" ;
$a -> age = "12";
echo $a->age;
?>
输出结果是,5 和 12。
//php类中静态变量可用一般方法或静态方法来操作,但如果在类中用静态方法,则静态方法中不可有非静态的变量。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询