今天看支付宝php接口代码,在处理提交的文件中看到了这样一段代码
class AlipaySubmit {
var $alipay_config;
/**
*支付宝网关地址(新)
*/
var $alipay_gateway_new = 'https://mapi.alipay.com/gateway.do?';
function __construct($alipay_config){
$this->alipay_config = $alipay_config;
}
function AlipaySubmit($alipay_config) { //这个函数的意义何在?
$this->__construct($alipay_config);
}
不明白后面的那个AlipaySubmit函数有什么作用?后来问了别人,才知道是为了兼容php4的语法。php4没有构造函数__construct,类的构造函数和类名一样。
在 PHP5.0 以上版本里,还兼容了 4.0 版本的构造函数的定义规则。如果同时定义了4.0的构造函数和 __construct()函数,则__construct() 函数优先。
为了使类代码同时兼容 PHP4.0 和 5.0,可以采取以下的方式:
<?php
class MyClass {
function __construct() { //for PHP5.0
echo 'this is class2 construct';
}
// 为了使类代码同时兼容 PHP4.0 和 5.0
function MyClass() { //for PHP4.0
$this->__construct();
}
}
$c3 = new MyClass;
?>