如何在php $ div中关闭double include_once

时间:2014-03-25 09:44:25

标签: php

我在索引页面中包含两个文件:

$PageData = new Page_Data(); 
$PageData->title ="Welcome to my page";
$div=  "<div class='login-form'>" . include_once "views/navigation.php" . include_once "controllers/login.php" . "</div>";
$PageData->content .=$div;

我得到了这两个错误。

  

警告:include_once(controllers / login.php):无法打开   stream:没有这样的文件或目录   C:\ Users \ kalle_000 \ Documents \ KEA \ 3rd Semester \ 3rd   第9行的Module \ Module_8 \ PHP_new \ index.php

     

警告:include_once():打开'controllers / login.php'失败   包含(include_path ='。; C:\ php \ pear')in   C:\ Users \ kalle_000 \ Documents \ KEA \ 3rd Semester \ 3rd   第9行上的Module \ Module_8 \ PHP_new \ index.php测试内容

我做错了什么?所有文件都在正确的文件夹中。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

include_once "views/navigation.php" . include_once "controllers/login.php" . "</div>"

这基本上被评估为

include_once ("views/navigation.php" . (include_once ("controllers/login.php" . "</div>")))

这意味着首先尝试包含"controllers/login.php" . "</div>",然后views/navigation.php0"views/navigation.php" +第一个include的结果)。这显然不会很好。

此外,包含的内容可能也不会连接到$div,而是直接输出 你可能想要:

ob_start();
echo "<div class='login-form'>";
include_once "views/navigation.php";
include_once "controllers/login.php";
echo "</div>";
$div = ob_get_clean();

答案 1 :(得分:0)

我将语法更改为:

$PageData = new Page_Data(); 
$PageData->title ="Welcome to my page";
$div=  "<div class='login-form'>";
$div.= include_once ("views/navigation.php");
$div.= include_once ("controllers/login.php");
$div.= "</div>";


$PageData->content .=$div;

出于某种原因,浏览器不理解以前的语法,但得到了这个,现在它完美地运行了。谢谢你的帮助。