我在PHP中使用FPDF类来创建PDF。一切正常,但现在我需要标题中带有不同徽标的PDF。
创建标题效果很好。
class PDF extends FPDF {
function Footer() {
// some code
}
function Header() {
$this->Image('PDF/images/pdf_header.png', 0, 0, 215);
}
}
现在我需要这样的东西。变量“$ is_summer”存在于我的文件中。
class PDF extends FPDF {
function Footer() {
// some code
}
function Header() {
if ($is_summer)
$this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
} else {
$this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
}
}
}
但是我得到了:注意:未定义的变量:第200行的createPDFpriv.php中的is_summer 。
好的,未定义的var。所以我试过
function Header($is_summer) {
if ($is_summer)
$this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
} else {
$this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
}
}
另一个错误:警告:PDF :: Header($ is_summer)的声明应该与第145行的createPDFpriv.php中的FPDF :: Header()兼容
也尝试过:
if ($is_summer) {
function Header() {
$this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
}
} else {
function Header() {
$this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
}
}
同样是错误:解析错误:语法错误,意外'if'(T_IF),期望在第199行的createPDFpriv.php中的函数(T_FUNCTION)。好的,有预期的功能,这不起作用。
有人可以帮忙吗?
答案 0 :(得分:1)
你可以这样解决:
class PDF extends FPDF {
public $is_summer;
function Footer() {
// some code
}
function Header() {
if ($this->is_summer)
$this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
} else {
$this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
}
}
}
所以你要做的就是当你制作PDF对象时,你将is_summer
属性设置为true或false,并且它能够在{{1}中使用该属性功能。
为此,您可以创建一个类似的构造函数:
Header
答案 1 :(得分:1)
也许你已经忘记了" $ this"之前" is_summer"?你可以试试这个:
class PDF extends FPDF{
private $isSummer = false;
function __construct($summer) {
parent::__construct();
$this->isSummer = $summer;
print "In BaseClass constructor\n";
}
function Header() {
if ($this->isSummer) {
$this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
} else {
$this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
}
}
}

并在使用时:
$mysummer = true; // or false
$mypdf = new PDF($mysummer);