我正在尝试解决所有这些错误,但无论我做什么都不起作用。
[25-Apr-2018 13:57:20 UTC] PHP警告:FPDF :: SetDrawColor()的声明应与tFPDF :: SetDrawColor($ r,$ g = NULL,$ b = NULL)兼容第10行/Applications/MAMP/htdocs/squid/lib/card_pdf.php
[25-Apr-2018 13:57:20 UTC] PHP警告:FPDF :: SetFillColor()的声明应与tFPDF :: SetFillColor($ r,$ g = NULL,$ b = NULL)兼容第10行/Applications/MAMP/htdocs/squid/lib/card_pdf.php
[25-Apr-2018 13:57:20 UTC] PHP警告:FPDF :: SetTextColor()的声明应与tFPDF :: SetTextColor($ r,$ g = NULL,$ b = NULL)兼容第10行的/Applications/MAMP/htdocs/squid/lib/card_pdf.php PHP警告:FPDF :: SetDrawColor()的声明应与/ Applications / MAMP中的tFPDF :: SetDrawColor($ r,$ g = NULL,$ b = NULL)兼容第10行的/htdocs/squid/lib/card_pdf.php
class FPDF extends tFPDF {}
{ private $ _encoding ='UTF-8';
var $angle=0;
public function Rotate($angle, $x=-1, $y=-1)
{
if($x==-1)
$x=$this->x;
if($y==-1)
$y=$this->y;
if($this->angle!=0)
$this->_out('Q');
$this->angle=$angle;
if($angle!=0)
{
$angle*=M_PI/180;
$c=cos($angle);
$s=sin($angle);
$cx=$x*$this->k;
$cy=($this->h-$y)*$this->k;
$this->_out(sprintf('q %.5f %.5f %.5f %.5f %.2f %.2f cm 1 0 0 1 %.2f %.2f cm', $c, $s, -$s, $c, $cx, $cy, -$cx, -$cy));
}
}
[25-Apr-2018 13:57:20 UTC] PHP不推荐使用:与其类同名的方法将不会是PHP未来版本中的构造函数; fpdi_pdf_parser在第22行的/Applications/MAMP/htdocs/squid/lib/FPDI-1.4/fpdi_pdf_parser.php中有一个弃用的构造函数
class fpdi_pdf_parser extends pdf_parser {
/**
* Pages
* Index beginns at 0
*
* @var array
*/
var $pages;
/**
* Page count
* @var integer
*/
var $page_count;
/**
* actual page number
* @var integer
*/
var $pageno;
/**
* PDF Version of imported Document
* @var string
*/
var $pdfVersion;
/**
* FPDI Reference
* @var object
*/
var $fpdi;
/**
* Available BoxTypes
*
* @var array
*/
var $availableBoxes = array('/MediaBox', '/CropBox', '/BleedBox', '/TrimBox', '/ArtBox');
/**
* Constructor
*
* @param string $filename Source-Filename
* @param object $fpdi Object of type fpdi
*/
function fpdi_pdf_parser($filename, &$fpdi) {
$this->fpdi =& $fpdi;
parent::pdf_parser($filename);
// resolve Pages-Dictonary
$pages = $this->pdf_resolve_object($this->c, $this->root[1][1]['/Pages']);
// Read pages
$this->read_pages($this->c, $pages, $this->pages);
// count pages;
$this->page_count = count($this->pages);
}
答案 0 :(得分:1)
[25-Apr-2018 13:57:20 UTC] PHP警告:FPDF :: SetDrawColor()的声明应与tFPDF :: SetDrawColor($ r,$ g = NULL,$ b = NULL)兼容第10行/Applications/MAMP/htdocs/squid/lib/card_pdf.php
方法必须有一致的declerations特别是在PHP7中,他们使它更严格,因为我发现。因此,您的FPDF::SetDrawColor()
必须完全按照此类
class FPDF{
public function SetDrawColor($r, $g = NULL, $b = NULL){}
}
您可以添加参数(我相信,但我建议不要这样做),但您无法更改类型提示或默认值。公共方法是您的类API或接口,因此应该在任何子类中保持一致,或者实现定义它们的接口。所以,如果你有这样的东西
public function SetDrawColor($r, $g = '', $b = NULL){}
它会给你这个警告,或者如果你有这样的话:
public function SetDrawColor($r){}
或许有其他许多变化,PHP会警告你它不一致。
[25-Apr-2018 13:57:20 UTC] PHP警告:FPDF :: SetFillColor()的声明应与tFPDF :: SetFillColor($ r,$ g = NULL,$ b = NULL)兼容第10行/Applications/MAMP/htdocs/squid/lib/card_pdf.php
见上文
[25-Apr-2018 13:57:20 UTC] PHP警告:FPDF :: SetTextColor()的声明应与tFPDF :: SetTextColor($ r,$ g = NULL,$ b = NULL)兼容/Applications/MAMP/htdocs/squid/lib/card_pdf.php on line 10 25-Apr-2018 13:57:20 UTC] PHP警告:FPDF :: SetDrawColor()的声明应该与tFPDF :: SetDrawColor兼容($第10行的/Applications/MAMP/htdocs/squid/lib/card_pdf.php中的r,$ g = NULL,$ b = NULL)
见上文
[25-Apr-2018 13:57:20 UTC] PHP不推荐使用:与其类同名的方法将不会是PHP未来版本中的构造函数; fpdi_pdf_parser在第22行的/Applications/MAMP/htdocs/squid/lib/FPDI-1.4/fpdi_pdf_parser.php中有一个弃用的构造函数
在PHP 4.x中,尚未引入__construct
方法。在旧的那些日子里,构造函数的命名与类相同,所以你必须有这样的方法:
class fpdi_pdf_parser{
public function fpdi_pdf_parser($foo){ echo $foo; }
}
哪个PHP认为是#34;旧学校"构造函数。我花了很多时间才开始使用PHP(早在2008年),更新旧的构造函数以兼容PHP 5,很有趣,我赚了很多钱也做了......哈哈。唯一真正的解决方案是将方法重命名为其他方法。我不认为关闭Deprecated
警告作为可行的解决方案,但它是一个"选项"当然。
解决此问题的最简单方法(如果它是构造函数)只是重命名它:
class fpdi_pdf_parser{
public function __construct($foo){ echo $foo; }
}
如果它不是构造函数,那么您必须为该方法提供一些逻辑名称。
这可能需要进行一些重构,如果这是第三方软件,我会寻找它的更新版本,或者它的等同于当前的东西。如果它不是您编写的代码,那么除非没有可行的替代品,否则不值得花时间重构它。
希望有所帮助。
答案 1 :(得分:0)
PHP Strict Standards: Declaration of FPDF::SetDrawColor() should be compatible with tFPDF::SetDrawColor($r, $g = NULL, $b = NULL) in /Applications/MAMP/htdocs/squid/lib/card_pdf.php on line 11
<?php
$cwd = getcwd();
chdir( dirname(__FILE__) );
require 'tfpdf/tfpdf.php';
class FPDF extends tFPDF
{
private $_encoding = 'UTF-8';
var $angle=0;
public function Rotate($angle, $x=-1, $y=-1)
{
if($x==-1)
$x=$this->x;
if($y==-1)
$y=$this->y;
if($this->angle!=0)
$this->_out('Q');
$this->angle=$angle;
if($angle!=0)
{
$angle*=M_PI/180;
$c=cos($angle);
$s=sin($angle);
$cx=$x*$this->k;
$cy=($this->h-$y)*$this->k;
$this->_out(sprintf('q %.5f %.5f %.5f %.5f %.2f %.2f cm 1 0 0 1 %.2f %.2f cm', $c, $s, -$s, $c, $cx, $cy, -$cx, -$cy));
}
}