代码之家  ›  专栏  ›  技术社区  ›  Mecom

无法解析表达式“str\u replace(“\\”、“/”、realpath(dirname(\uu FILE\uuu)))/system/initialize的目标。php'

  •  0
  • Mecom  · 技术社区  · 8 年前

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

    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/
    

    我将上述文件包括在索引文件中,然后包括一个文件初始化。类似php

    指数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';
    

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

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

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

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

    1 回复  |  直到 8 年前
        1
  •  3
  •   shawn    8 年前
    1. 您看到的警告只是IDE警告,不会导致任何问题。IDE无法知道要包含哪些文件,因为表达式太复杂。

    2. IDE通常扫描项目中的所有PHP文件。所以即使 include/require 如果没有正确解析,IDE仍然知道所有PHP文件中的所有类/函数。