无法解析表达式的目标&#; str_replace(' \\',' /',realpath(dirname(__ FILE __)))/ system / initialize.php& #39;

时间:2018-01-06 09:07:39

标签: phpstorm

这就是我在配置文件中的内容:

define('BASE_DIR', str_replace('\\', '/', realpath(dirname(__FILE__))) . '/', false);
// output: C:/xampp/htdocs/myweb/

define('BASE_URL', $protocol . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/.\\') . '/', false);
//output: http://localhost/myweb/

define('APP_DIR', BASE_DIR . 'app/', false);
// output: C:/xampp/htdocs/myweb/app/

define('TEMP_DIR', BASE_DIR . 'app/view/template/', false);
//output: C:/xampp/htdocs/myweb/app/view/template/

define('LIBRARY_DIR', BASE_DIR . 'library/', false);
//output: C:/xampp/htdocs/myweb/library/

define('SYSTEM_DIR', BASE_DIR . 'system/', false);
//output: C:/xampp/htdocs/myweb/system/

我在索引文件中包含上述文件,然后包含一个类似

的文件initialize.php

的index.php

// Include the config file. If file not found throw error and exit.
if (!file_exists('config.php')) {
    header('Location: error/404.php');
    exit();
} else {
    include_once 'config.php';
}

// Load startup file to check, set environment plus a few core files
require_once SYSTEM_DIR . 'initialize.php';

initialize.php执行一些检查并设置应用程序所需的一些参数。

这很好但最近我切换到PhpStorm并且IDE说

  

无法解析表达式'str_replace('\\', '/', realpath(dirname(__FILE__)))/system/initialize.php'的目标(在第27行)。

这是什么问题?如果表达式的目标没有得到解析,那么它如何仍然包含初始化文件。

1 个答案:

答案 0 :(得分:3)

  1. 您看到的警告只是一个IDE警告,它不会导致任何问题。 IDE无法知道您要包含哪些文件,因为表达式太复杂了。

  2. IDE通常会扫描项目中的所有PHP文件。因此,即使未正确解析include/require,IDE仍会知道所有PHP文件中的所有类/函数。