繁体   English   中英

我可以在PHP中的include中使用include吗?

[英]Can I use an include within an include in PHP?

我正在尝试使用PHP设置我的网站,但我是初学者。

我已经知道如何通过单击导航链接包含maincontents(只是单独的.php文件中的内容)。

但是如果包含的内容有一个subnavi并且我也想使用这个navi将内容包含在那个内容中呢?

包含在包含工作中吗?

如何告知所包含内容中的链接,他应首先加载索引,然后自己然后从subnavi中选择内容?

或者有更好的方法来构建我的代码?

这是我的index.php代码:

<?php 

if ($_GET['page'] == 'first' ){
    include 'first.php';
}else if ($_GET['page'] == 'second' ){
    include 'second.php';
}else if ($_GET['page'] == 'third' ){
    include 'third.php';
}else if ($_GET['page'] == 'fourth' ){
    include 'fourth.php';
}else include 'drawing.php';

?>

我将链接称为:

href="index.php?page=first"

我现在可以为子区域使用相同的吗? 但是添加什么呢?

编辑:我再次提前解决我的问题,因为现在我觉得PHP无法做到我想要实现的目标。

那么让我再解释一下我的想法:

我的index.php是独立编码(页眉和页脚),它有一个include部分,我想加载内容。 该链接已经提供并且有效。 我正在加载的内容不是独立编码的。 它只包含一个包含所有内容的div,仅此而已。 我认为这就是包含的原因。

好的,但是现在index.php中加载的内容还有一些指向其他包含的链接。 这是一个subnavi。 因此,我还希望将内容包含在刚刚加载的内容中,这也不是独立内容(没有页眉或页脚)。

我可以想象的问题是,加载到index.php中的内容当然不知道它是一个加载的内容。 所以出于这个原因,当它本身应该加载另一个内容时,它无法自己重建,因为现在它的“创建页面”确实存在。 对?

为了确定我的问题:是否有一种链接用于加载内容的subnavi,其中说href =“loadindexthenloadmeinindexthenloadtheincludedcontentIhavejustaskedfor”

如果没有,我很想学习如何。

如果这种方式只是非正统,那么请告诉我。

感谢您的关注。

是的,您可以包括在内。

将include视为将包含文件的内容复制并粘贴到include "blah.php"位置。

构建这个的“更好的方法”是拥有一个“主”视图,包括应该彼此独立的其他部分和部分。

您应该注意包含哪些文件,因为您最终可能会多次包含一些文件。 如果include定义了一个函数,这会导致脚本崩溃,这可能是一个问题。 在这种情况下,您可以使用include_once


有了这样说......包含在一个包含内?

在此输入图像描述 (抱歉无法抗拒)

首先 :

$routes = array( 
   'first'    => 'first.php',
   'second'   => 'second.php',
   'third'    => 'third.php',
   'fourth'   => 'fourth.php',
   'fallback' => 'drawing.php'
);

$page = $_GET['page'];
if ( !array_key_exists( $page , $routes ))
{
   $page = 'fallback';
}

include $routes[$page];

是的,你可以包括内部包括。

你也可以用它们做很多其他的事情,比如创建一个简单的模板引擎 或者将include中的数据传递给变量:

让我们说你有线:

$config = include 'conf.php';

和`conf.php'包含:

<?php
   return array(
      'foo' => 'lorem ipsum sit dolor amet',
      'bar' => 'cogito ergo sum'
   );
?>

然后它会在$config传递这个数组..但很少使用这个技巧。 并不总是最好的方式,应用理由。

你当然可以。 它被称为递归包括

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM