<? php
2
3
4
// 今天在看书的时候,发现书上有这么一条:函数重载的替代方法————伪重载
5
//
6
//确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数
7
//在看到了func_get_arg,func_get_args,func_num_args,这三个函数的时候,你们是不是想起了什么?
8
//SO,let's try it
..
9
10
function testOne ( $a )
11
{
12
echo ( ' 一个参数就这样 ' );
13
}
14
15
function testTwo ( $a , $b )
16
{
17
echo ( ' 两个参数的就这样 ' );
18
}
19
20
function testThree ( $a , $b , $c )
21
{
22
echo ( ' 黑黑,这是三个参数的 ' );
23
}
24
25
function test ()
26
{
27
$argNum = func_num_args ();
28
// 这一段其实可以用 $_arg = func_get_args() 来获得所有的参数,只是要用数组而已,不方便我下面的表达,呵呵
29
for ( $i = 0 ; $i < $argNum ; $i ++ )
30
{
31
$_arg_ { $i } = func_get_arg ( $i );
32
}
33
switch ( $argNum )
34
{
35
case 1 :
36
testOne( $_arg_1 );
37
break ;
38
case 2 :
39
testTwo( $_arg_1 , $_arg_2 );
40
break ;
41
case 3 :
42
testThree( $_arg_1 , $_arg_2 , $_arg_3 );
43
break ;
44
default :
45
echo ( ' 这是没有参数的情况 ' );
46
break ;
47
}
48
}
49
50
/* *
51
* 例子的实现
52
*
53
*/
54
test();
55
echo ( ' <br> ' );
56
test( 1 );
57
echo ( ' <br> ' );
58
test( 1 , 2 );
59
echo ( ' <br> ' );
60
test( 1 , 2 , 3 );
61
62
63
64
// 这些只是在函数中的运用,其实最主要的还是在类中的运用
65
//如果这些用到类里面我就不需要担心构造函数是否有几个参数了,不是吗?
66
//类里面的运用只举一个简单的例子
67
68
class test
69
{
70
var $a = 0 ;
71
var $b = 0 ;
72
73
function test ()
74
{
75
$argNum = func_num_args ();
76
$_arg = func_get_args ();
77
switch ( $argNum )
78
{
79
case 1 :
80
$this -> test1( $_arg [ 0 ] );
81
break ;
82
case 2 :
83
$this -> test2( $_arg [ 0 ] , $_arg [ 1 ]);
84
break ;
85
default :
86
$this -> a = 0 ;
87
$this -> b = 1 ;
88
break ;
89
}
90
}
91
92
function test1 ( $a )
93
{
94
$this -> a = $a ;
95
}
96
97
function test2 ( $a , $b )
98
{
99
$this -> a = $a ;
100
$this -> b = $b ;
101
}
102
}
103
104
105
?>
转自: http://www.cnitblog.com/neatstudio/archive/2006/07/21/13949.html
2
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
3
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
4
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
5
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
6
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
7
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
8
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cnitblog.com/Images/dot.gif)
9
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
10
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
11
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
12
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
13
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
14
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
15
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
16
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
17
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
18
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
19
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
20
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
21
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
22
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
23
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
24
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
25
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
26
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
27
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
28
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
29
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
30
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
31
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
32
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
33
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
34
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
35
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
36
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
37
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
38
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
39
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
40
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
41
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
42
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
43
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
44
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
45
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
46
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
47
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
48
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
49
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
50
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
51
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
52
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
53
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
54
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
55
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
56
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
57
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
58
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
59
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
60
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
61
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
62
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
63
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
64
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
65
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
66
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
67
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
68
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
69
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
70
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
71
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
72
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
73
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
74
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
75
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
76
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
77
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
78
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
79
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
80
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
81
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
82
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
83
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
84
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
85
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
86
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
87
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
88
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
89
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
90
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
91
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
92
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
93
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
94
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
95
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
96
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
97
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
98
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
99
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
100
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
101
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
102
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
103
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
104
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
105
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
转自: http://www.cnitblog.com/neatstudio/archive/2006/07/21/13949.html