File_exists但不包括

use*_*488 2 php

我正在尝试包含一个文件,但它似乎不起作用 - 这是整个代码:

if (file_exists('config/categories.php')) {
    include ('config/categories.php'); 
} 

foreach ($categories as $cat_sef => $cat_name) {
    echo '<a href="'.$full_domain.$cat_sef.'" alt="#">'.$cat_name.'</a><br />';
}
Run Code Online (Sandbox Code Playgroud)

config/categories.php的内容只是一个数组:

$categories = array("category-1" => "Category 1", 
"category-2" => "Category 2", 
"category-3" => "Category 3")
Run Code Online (Sandbox Code Playgroud)

我知道该文件存在,因为以下工作原理:

if (file_exists('config/categories.php')) {
    echo "file exists";
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将categories.php中的数组替换为:

echo "testing";
Run Code Online (Sandbox Code Playgroud)

什么都不会显示.因此,据我所知,该文件存在但似乎并没有包括一些如何.如果我将类别文件重命名为其他内容,我将收到"无此文件"错误(文件不存在).

使用原始代码段,我得到的错误是:

Notice: Undefined variable: categories
Run Code Online (Sandbox Code Playgroud)

但正如您所看到的,它在categories.php文件中定义.

它唯一的工作方式是将数组放在我的代码的if(file_exists)部分的位置,我不想这样做,因为其他部分依赖于那些categories.php文件,所以我不想欺骗多个文件中的数组.

有谁知道这可能是什么?如果您需要更多信息,请告诉我.

Jus*_* T. 5

你有两个选择:

  • 使用include(dirname(__FILE__).'/config/categories.php')以确保您包括此相同的文件,而不是另一个人的config/categories.php"

  • 仔细检查categories.php是否包含像这样打开php标签<?php.看起来显而易见,但我在代码审查中不止一次地看到过这种情况.

希望这可以帮助 !