PHP类中的__set()和__get()方法用在啥地方?可以用例子说明一下么...
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP类中的__set()和__get()方法用在啥地方?可以用例子说明一下么...相关的知识,希望对你有一定的参考价值。
在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类中静态变量可用一般方法或静态方法来操作,但如果在类中用静态方法,则静态方法中不可有非静态的变量。 参考技术A 楼上正解
好详细 - -
以上是关于PHP类中的__set()和__get()方法用在啥地方?可以用例子说明一下么...的主要内容,如果未能解决你的问题,请参考以下文章
PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep