包括包含另一个php文件的php文件?

时间:2016-12-28 18:59:04

标签: php wordpress include global-variables

我的PhP文件包含一些长字符串常量,我试图将它们排除在外。所以我创建了“my_string_constants.php”并在include中使用了header.php。到目前为止工作正常。

现在另一个文件page.php也需要字符串常量 header.php。下面的方案试图澄清这些依赖。

enter image description here

字符串常量现在似乎只在我的标题中可用,而不是我页面的其余部分。我尝试通过向global ...中的每个字符串常量添加string_constants.php来解决此问题。这解决了“未知变量”的错误,但我的字符串常量似乎仍然无法用于大多数页面内容。

让这项工作成功的正确方法是什么?

更新

问题已解决。我应该使用define(myString代替$myString = ...。通过这样做,我只需要include中的一个header.php,并且page.php也可以使用常量。

万分感谢,你们很棒。

3 个答案:

答案 0 :(得分:3)

您要做的一件事是将常量与变量区分开来。特别是如果其他开发人员最终解决这个问题,他们会对你的术语感到困惑。

对于常量,您不需要将它们声明为全局,并且它们的定义如下:

define('MY_CONSTANT', 'Value');

在我看来,常量文件充当您的站点范围的配置文件,因此对我而言,无论是否使用标头,都可以在每个页面上使用它。我通常会为此创建一个bootstrap文件。

bootstrap.php中:

<?php
require_once(__DIR__ . '/constants.php');
require_once(__DIR__ . '/database.php');
require_once(__DIR__ . '/session.php');

您明白了,然后每个可访问的页面都需要包含此引导程序文件,然后可能包含标题。

page.php文件:

<?php
require_once(__DIR__ . '/bootstrap/bootstrap.php');
require_once(__DIR__ . '/header.php');
?>
<h1>Page Title</h1>

在header.php中,由于它需要这些常量,你可以通过两种方式处理它,或者检查是否定义了常量(意思是,首先包含bootstrap),或者只使用另一个require_once来确保加载了文件。

if (!defined('MY_CONSTANT')) exit('Bootstrap failure');

require_once(__DIR__ . '/bootstrap/constants.php');

答案 1 :(得分:0)

去许多目录或&#34;文件&#34;关于包含的深度可能会在您尝试调试时导致问题。作为一项规则,我尝试只涉及包含文件的一个级别。即创建一个名为includes的文件夹并将所有内容放在那里。如果有一个文件需要多个变量,函数等,那么在那个时候将它们包含在所需的页面中,做几个包含如下:

<?php 
include("includes/header.php"); 
includes("includes/functions.php");
?>

还有其他问题涉及多个包含,例如,如果您有会话或cookie,某些LAMP堆栈将要求您声明

session_start();

位于每个页面的顶部,包括可能需要访问该会话或cookie的所有包含的php文件。

因此,为了回答您的问题,我认为最简单的解决方案是重新组织您的网站或脚本。

答案 2 :(得分:0)

在标题页面上你写了 包括&#39; header.php&#39;;

并在header.php中写道 包括&#39; my_string_constants.php&#39;;

所以在这种情况下,page.php调用头文件,在头文件中调用my_string_constants ......这就是你的意思吗?