我有一个表单将变量$ oid传递给php脚本。拉取表单变量,需要将其传递给名为get_name()的函数。该类中的header()函数在父类中实现了一个名为header()的接口。
require 'pdfclass.php';
$oid = $_REQUEST['oid'];
class p extends PDF {
function Header() {
$this->setF('Arial',10);
$this->Cell(50,10,get_name($oid),1,0,'c');
} //end Header()
} //end class
function get_name($oid) {... }
$pdf = new P();
$pdf->setF('Times',12);
$pdf->AddPage();
$pdf->Output();
当我运行它时,我在类扩展中的get_name($ oid)调用上出错。我希望避免使用全局变量。任何想法如何做到这一点?
提前致谢
答案 0 :(得分:0)
解决这个问题的各种方法,我将深入研究如何以及为什么一个更好。最简单的解决方法是:
function Header($oid) {
$this->setF('Arial',10);
$this->Cell(50,10,get_name($oid),1,0,'c');
} //end Header()
答案 1 :(得分:0)
显而易见的答案是将变量作为参数传递:
class p extends PDF {
function Header($oid) {
$this->setF('Arial',10);
$this->Cell(50,10,get_name($oid),1,0,'c');
}
}
$p = new p();
$p->Header($oid);
如果由于某种原因这是不可能的,比如因为该函数被其他东西调用,你可以将它传递给构造函数:
class p extends PDF {
public $oid = null;
public function __construct($oid /*, $original, $arguments */) {
$this->oid = $oid;
parent::__construct(/* $original, $arguments */);
}
public function Header() {
$this->setF('Arial',10);
$this->Cell(50,10,get_name($this->oid),1,0,'c');
}
}
$p = new p($oid /*, 'foo', 'bar' */);