包括不按预期工作


Include not working as expected

这让我很困惑,所以我在我的php中有一个简单的包含行,但由于某种原因,它并不总是正常工作。

基本上包含是加载我的主要内容部分…

如果$page['view']list,我的页面将无法正确加载…

我的php文件是

include ('lib/views/' . $page['view'] . '.php');

但是页面没有加载,在该点以下的内容都没有加载,包括页脚…

正常运行

echo 'lib/views/' . $page['view'] . '.php';

我的apache2错误日志输出以下错误

include(): Failed opening 'lib/views/.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/site/www/lib/includes/main.php on line 3

当我尝试这个,页脚重新出现,但仍然相同的错误

$view = 'lib/views/' . $page['view'] . '.php';
include ($view);

这对我来说是相当令人困惑的,特别是考虑到如果$page['view']avatar它然后工作

编辑1

根据@philwc的建议,我已经将此添加到我的代码

if (isset($page['view'])) {
        var_dump($page['view']);
}

按预期输出list

试试这个:

include ("lib/views/{$page['view']}.php");

就像你说的那样,它会给你一个不同的错误,只要把它标记正确,这样它就不会处于不确定状态:)

$page['view']设置不正确。尝试用像

这样的isset来包装它
if(isset($page['view'])){
    include ('lib/views/' . $page['view'] . '.php');
}else{
    echo 'Error!';
}