php类基本方法

总结一下PHP对象的基本方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class {
function __construct(){
echo "constructn";
}

function __destruct(){
echo "destructn";
}
function __clone(){
echo "clonen";
}
function __get($property){
echo "get $propertyn";
}
function __set($property, $value){
echo "set $property : $value n";
}
function __call($name, $params){
echo "call $name n";
}
//调用对象不存在的静态方法是回触发,注意static
static function __callStatic($name, $params){
echo "callStatic $name n";
}
function __toString(){
return "toStringn";
}
//在序列化对象的时候会调用,可以指定需要序列话的属性
function __sleep(){
echo "sleepn";
return array();
}
//反序列化为对象的时候会调用,可以做一些初始设定
function __wakeup(){
echo "wakeupn";
}
}

$main = new Main();
echo $main;
$main2 = clone $main;
$main->name;
$main->name = 1;
$main->test("a");
$main::test("aa");
$ser = serialize($main);
echo $ser."n";
$obj = unserialize($ser);
var_dump($obj);

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
construct
toString
clone
get name
set name : 1
call test
callStatic test
sleep
O:4:"Main":0:{}
wakeup
class Main#3 (0) {
}
get name
destruct
destruct
destruct