我正在为一个客户建立一个网站,他希望有一个计算器让客户计算他们想租赁汽车时的每月保费。这个计算器出现在网站的三个不同的地方,所以我决定构建一次,然后将include()
的文件放到主文件中。例如:为什么我必须在包含文件中重新声明我的类?
case 'calculator':
case 'bereken-leasebedrag':
include('calculator.php');
break;
不过,我在主文件中定义几类:
use site\database\Vote;
use site\database\Vehicle;
use site\database\VehicleType;
use site\utils\ApiConnect;
use site\utils\Calculator;
而且更多一些。
这些类中的一些被计算器文件使用,例如计算器和车辆以及其他一些类。这些类是在主文件中定义的,但不会传输到计算器文件,而变量像$ _SESSION,$ _POST甚至我自己定义的变量(如$ car和$ calc)都可以在包含的文件中找到。
如果我没有在calculator.php开头重新声明我的类,它会在页面中引发一个致命错误,说它找不到类,例如ApiConnect类。
我在这里做错了什么?从逻辑上讲,包含的文件应该继承几乎所有的东西,而且必须指定包含文件所需的每个类似乎是相反的。
我在解释事情上很糟糕,所以如果我需要详细说明某件事情,我会非常乐意。
你有没有在PHP中注册过的自动加载器? – divix
@divix是的,我们的'模板'包含一个名为'bootstrap.inc.php'的文件,并且包含一个自动加载器。我不知道这是如何工作的,但我并不熟悉PHP – Sean
请显示更多代码。你所做的显示与文件包含或自动加载无关,你只是显示一些命名空间别名。 – deceze