我已经整合了这个库。我创建了类Pdf:
require_once dirname(__FILE__) . '/tcpdf/tcpdf.php';
class Pdf extends TCPDF {
public function __construct($params) {
parent::__construct();
}
}
但是当我用其他参数调用构造函数时,构造函数只使用默认的参数。
$this->load->library('pdf');
$pdf = new Pdf('L', 'mm', array(216, 330), true, 'UTF-8', false);
但是,如果我改变TCPdF的类Pdf工作正常。
$this->load->library('pdf');
$pdf = new TCPDF('L', 'mm', array(216, 330), true, 'UTF-8', false);
问题是我想要更改标头,并且必须创建一个使用新标头信息扩展TCPDF的新类。我不能用自定义参数调用此类(Pdf类)的构造函数。
答案 0 :(得分:1)
您当然必须将参数传递给父类。请注意,TCPDF需要一长串单独的参数,而不是数组。解决这个问题的一种方法是使用call_user_func_array
:
class Pdf extends TCPDF {
public function __construct() {
call_user_func_array('parent::__construct', func_get_args());
}
}
请注意,$params
参数已从Pdf::__construct
中移除,因为它无论如何都没有意义。相反,func_get_args()
将收集任意数量的参数并将它们传递给父构造函数。
当然,如果$params
是一个已保存要传递给TCPDF的值的数组,则可以使用该数组而不是func_get_args()
。但请确保数组值的顺序正确。