我正在使用无法升级的PHP 5.4旧系统。我必须通过添加一个名为FPDF / FPDI的具有此功能的PDF文件生成库来做一个小的更改:
protected function getPdfParserInstance(StreamReader $streamReader)
{
/** @noinspection PhpUndefinedClassInspection */
if (\class_exists(FpdiPdfParser::class)) {
/** @noinspection PhpUndefinedClassInspection */
return new FpdiPdfParser($streamReader);
}
return new PdfParser($streamReader);
}
问题是::class
已在PHP 5.5中添加,如in this question所述。
问题是:要在PHP 5.4中工作,需要对该函数进行哪些更改?
::class
仅计算包含类的全名的字符串,因此请改用它。查看top of the file语句,您会发现use
只是一个别名,因此应将代码重写为如下形式:
FpdiPdfParser
严格来说,您不需要转义反斜杠;很少有if (class_exists("setasign\\FpdiPdfParser\\PdfParser\\PdfParser"))
包含大写字母,但是无论如何,这样做是一个好习惯。
不太可能这将是您遇到的唯一兼容性问题。如果一个系统可以运行PHP 5.4,那么几乎可以肯定它可以运行PHP 5.6,这仅是过时的几年了。