因此,我正在查看 PHPWord 的源代码,我已经查看了所有内容,但无法弄清楚这段代码是如何工作的。
class PHPWord_Shared_XMLWriter {
/**
* Internal XMLWriter
*
* @var XMLWriter
*/
private $_xmlWriter;
public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = './') {
// Create internal XMLWriter
$this->_xmlWriter = new XMLWriter();
...
}
}
因此,根据我对 php 的理解,访问 $this->_xmlWriter 方法的唯一方法是这样调用它:
$testClass= new PHPWord_Shared_XMLWriter();
$testClass->_xmlWriter->startDocument();
然而,在来自 theDocProps.php 的这段代码中,这行代码实现了:
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
$objWriter->startDocument('1.0','UTF-8','yes');
这是如何运作的?我无法复制它,但是当我在文件中使用它时它可以工作。为了清楚起见,PHPWord_Shared_XMLWriter 没有定义名为 startDocument() 的方法。我觉得我错过了一些非常简单的东西,但我什至无法正确搜索它。
谢谢!