Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自变量的PHP类名_Php - Fatal编程技术网

来自变量的PHP类名

来自变量的PHP类名,php,Php,我可以动态命名一个类吗 我写了一个过程,它调用了大约6个页面,通过tcpdf生成PDF。 它们都使用构成类的相同标题页 class myPDF extends TCPDF { 问题是,当我运行脚本时,出现了致命错误:无法在中重新声明类myPDF 完成第一页后 我明白为什么,但不知如何处理 只调用它一次是没有好处的,因为它包含一个查看页面特定变量的函数 我也不认为我可以在任何情况下取消申报 一种方法是更改每个include的类名,但不确定如何将类名设置为变量 ie类$newname 有什么想法吗

我可以动态命名一个类吗

我写了一个过程,它调用了大约6个页面,通过tcpdf生成PDF。 它们都使用构成类的相同标题页

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&nbsp;     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文件中,而不需要这是你为什么要这么做的原因之一。而且我还有一份工作,谢谢,哈哈。