您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP使用多个构造的方法

2024/6/9 15:40:29发布26次查看
php不可以定义多个构造方法的原因是:由于php是弱类型语言,因此函数的输入参数类型无法确定(可以使用类型暗示,但是类型暗示无法用在诸如整型,字符串之类的标量类型上),并且对于一个函数,比如只定义了3个输入参数,php却运行调用的时候输入4个或者更多的参数。因此基于这2点,注定了php中无法重载函数,(类似javascript语言),也无法有构造函数的重载。
php的构造方法与java的有所不同,不能有多个构造方法,只能有一个构造方法,若想要实现类似java的构造方法的使用,可以使用下面的办法来实现:
[php] view plain copy
//php构造方法使用 class test{ function __construct(){ echo 'test类无参构造方法被调用<br/>'; $a=func_get_args(); $i=func_num_args(); //判断test类是否有__constructxx方法,将方法名记为$f if(method_exists($this,$f='__construct'.$i)){ //若存在xx方法,使用call_user_func_array(arr1,arr2)函数调用他,该函数的参数为两个数组,前面的数组为调用谁($this)的什么($f)方法,后一个数组为参数 call_user_func_array(array($this,$f),$a); } } function __construct1($a1){ echo 'test类1个参数的仿构造方法被调用<br/>'; //输出参数值 echo '其值为:'.$a1.'<br/><br/>'; } function __construct2($a1,$a2){ echo 'test类2个参数的仿构造方法被调用<br/>'; echo '其值为:'.$a1.'、'.$a2.'<br/><br/>'; } function __construct3($a1,$a2,$a3){ echo 'test类3个参数的仿构造方法被调用<br/>'; echo '其值为:'.$a1.'、'.$a2.'、'.$a3.'<br/><br/>'; } } //测试 new test('你'); new test('你','好'); new test('你','好','啊');
测试结果为:
相关推荐:
php语言构造器详解
js普通函数和构造函数详解
javascript构造器模式实例分析
以上就是php使用多个构造的方法的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product