来自变量的PHP类名
我可以动态命名一个类吗 我写了一个过程,它调用了大约6个页面,通过tcpdf生成PDF。 它们都使用构成类的相同标题页来自变量的PHP类名,php,Php,我可以动态命名一个类吗 我写了一个过程,它调用了大约6个页面,通过tcpdf生成PDF。 它们都使用构成类的相同标题页 class myPDF extends TCPDF { 问题是,当我运行脚本时,出现了致命错误:无法在中重新声明类myPDF 完成第一页后 我明白为什么,但不知如何处理 只调用它一次是没有好处的,因为它包含一个查看页面特定变量的函数 我也不认为我可以在任何情况下取消申报 一种方法是更改每个include的类名,但不确定如何将类名设置为变量 ie类$newname 有什么想法吗
class myPDF extends TCPDF {
问题是,当我运行脚本时,出现了致命错误:无法在中重新声明类myPDF
完成第一页后
我明白为什么,但不知如何处理
只调用它一次是没有好处的,因为它包含一个查看页面特定变量的函数
我也不认为我可以在任何情况下取消申报
一种方法是更改每个include的类名,但不确定如何将类名设置为变量
ie类$newname
有什么想法吗
加上这个
class myPDF extends TCPDF {
public function Header () {
global $title;
global $client;
global $host;
$oMulticell->multiCell(266,8, "<s1>$title Client:</s1> <s2>$client</s2> <s1>Host:</s1> <s2>$host</s2> <s1>Currency:</s1> <s2>$currency</s2> <s1>Reporting Period:</s1> <s2>$start_date_rep to $end_date_rep</s2>", 'TB');
}
classmypdf扩展了TCPDF{
公共函数头(){
全球$title;
全球$客户;
全球$东道国;
$oMulticell->multiCell(266,8,“$title Client:$Client Host:$Host Currency:$Currency report Period:$start_date_rep to$end_date_rep”,“TB”);
}
您不能。类定义必须在编译时可解析,而不是在运行时可解析。您不能创建“动态”类名。include\u once()
应该可以解决您的问题。每次我运行include时,它都会在类内使用特定于页面的变量-如果我使用一次-它不会查看新的变量如果您确保无论在哪里包含myPDF类或TCPDF类,您都会将include
更改为include\u once
,那么您的代码就应该可以了。它工作的原因是什么使用一个include是因为每个后续的include都试图重新定义myPDF
,而如果你只使用一次include\u
,那么它就不会有这个问题了!尝试一下,它应该会被修复。:)Edit:你真的需要在类中生成那些特定于页面的变量吗?好的emma-我不得不在一些include上下功夫并将类放在自己的页面中,但你完全正确。我是否需要在类中生成-不确定,但我正在遵循这样做的tcpdf示例。单个pdf没有问题,而是从母版页驱动的一个又一个pdf导致了我的问题。感谢您的指导,您应该将类放在自己的php文件中,而不需要这是你为什么要这么做的原因之一。而且我还有一份工作,谢谢,哈哈。