将一个变量添加到类扩展中的概念是我无法理解的,可以使用一些帮助。
这是我正在扩展的类的示例。它工作得很好,但我无法访问$ XML变量。我可以将$ XML变为全局,但我知道要避免这样做。
<?php
//Sample XML Object
$XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<data><foo>Bingo!</foo></data>";
$XML = simplexml_load_string($XML);
// Extend the class
class myExt extends ENTERPRISE {
public function HTMLBlock() {
// Set font
$this->SetFont('helvetica', 'B', 10);
$html = '
<P style="font-weight:normal;">
This is a test text cell<br />
Foo is set to '.$XML->foo.'
</P>
';
// Title
$this->htmlToBlock(90, '200', $HTML );
}
}
$pdf = new myExt('L', 'Letter', 'Landscape', true, 'UTF-8', false);
?>
我读过有关构造的内容。我知道我需要添加到父构造中,我仍然不会在哪里/如何向变量发送它。我从这样的事情开始。 (不工作)
<?php
//Sample XML Object
$XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<data><foo>1</foo></data>";
$XML = simplexml_load_string($XML);
// Extend the class
class myExt extends ENTERPRISE {
function __construct($xmlData) {
parent::__construct();
}
public function HTMLBlock() {
// Set font
$this->SetFont('helvetica', 'B', 10);
$html = '
<P style="font-weight:normal;">
This is a test text cell<br />
Foo is set to '.$XML->foo.'
</P>
';
// Title
$this->htmlToBlock(90, '200', $HTML );
}
}
$pdf = new myExt('L', 'Letter', 'Landscape', true, 'UTF-8', false);
?>
我是否以某种方式向myExt()发送了另一个参数?最后神奇的?我试了但是没用。也许是这样的:
$pdf = new myExt('L', 'Letter', 'Landscape', true, 'UTF-8', false,$XML);
感谢任何指导!
答案 0 :(得分:2)
这是一个非常简单的示例,但是如果构造函数接受6个参数并且您想要传递一个额外的参数,则可以覆盖默认构造函数。如果您发布了ENTERPRISE类,我将更新此响应!
<?php
//Sample XML Object
$XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<data><foo>Bingo!</foo></data>";
$XML = simplexml_load_string($XML);
// Extend the class
class myExt extends ENTERPRISE {
var $XML;
function __construct($arg1, $arg2, $arg3, $arg4, $arg5, $arg6, $XML)
{
parent::__construct($arg1, $arg2, $arg3, $arg4, $arg5, $arg6);
$this->XML = $XML;
}
public function HTMLBlock() {
// Set font
$this->SetFont('helvetica', 'B', 10);
$html = '
<P style="font-weight:normal;">
This is a test text cell<br />
Foo is set to '.$this->XML->foo.'
</P>
';
// Title
$this->htmlToBlock(90, '200', $HTML );
}
}
$pdf = new myExt('L', 'Letter', 'Landscape', true, 'UTF-8', false, $XML);
?>
另请注意,PHP中的变量区分大小写。所以在你的HTMLBlock方法中,$ html!= $ HTML。