我是PHP编程的新手。我试图在Drupal中编写这个自定义的PHP代码并看到这种奇怪的行为。基本上我有两个用户可以点击的php文件,第一个php文件显示第二个的输出。我没有在第一个文件中包含(包括)第二个文件。
Home.php - 第一个文件(输出'为什么我在最后执行')
<?php include 'HomeView.BL.inc';
//Other links to access second file
?>
HomeView.BL.inc
<?php
include 'db.inc';
include 'dao.inc'; - has a class called IDA_Map
?>
FacultyInternshipDetail.php - 第二个文件
<?php
include 'InternshipDetailView.BL.inc';
?>
InternshipDetailView.BL.inc
<?php
echo "why am i executing";
include 'db.inc';
include 'dao.inc';
?>
除了第二个文件的输出外,我也看到了这个错误 - 无法重新声明类IDA_Map。
我在其他帖子中读过'include_once',但由于每个请求都声明了一次类(IDA_Map),因此不会发生重新声明错误。
谢谢。
答案 0 :(得分:0)
将所有这些翻转到require_once
。
<?php require_once'HomeView.BL.inc';
//Other links to access second file
?>
HomeView.BL.inc
<?php
require_once'db.inc';
require_once'dao.inc'; - has a class called IDA_Map
?>
FacultyInternshipDetail.php
<?php
require_once'InternshipDetailView.BL.inc';
?>
InternshipDetailView.BL.inc
<?php
echo "why am i executing";
require_once'db.inc';
require_once'dao.inc';
?>
当您尝试两次包含同一文件时,包含中断。 还要查找作曲家并使用php框架,这样你就不用担心这个了!