Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP配置可能存在问题?_Php_Xampp - Fatal编程技术网

PHP配置可能存在问题?

PHP配置可能存在问题?,php,xampp,Php,Xampp,我买了一台新笔记本电脑,安装了新版本的XAMPP。我移动了一个我正在使用的系统,但它在这台计算机上运行不正常 我认识到的第一个问题是,它不包括相对于包含它的文件的位置的文件。我在includes/目录中有一个config.php文件以及我的include.php文件。在include.php文件中,我必须键入require'includes/config.php'即使config.php与include.php位于同一文件夹中。在我的另一台计算机上,我只需要做require'config.php

我买了一台新笔记本电脑,安装了新版本的XAMPP。我移动了一个我正在使用的系统,但它在这台计算机上运行不正常

我认识到的第一个问题是,它不包括相对于包含它的文件的位置的文件。我在
includes/
目录中有一个
config.php
文件以及我的
include.php
文件。在
include.php
文件中,我必须键入
require'includes/config.php'
即使
config.php
include.php
位于同一文件夹中。在我的另一台计算机上,我只需要做
require'config.php'

另外,由于包含的文件没有与我正在查看的主文件一起加载,所以变量和常量没有定义,所以它似乎是自动定义的

注意:在第6行的C:\xampp\htdocs\Xion\includes\include.php中使用未定义的常量DB_HOST-假定为“DB_HOST”


较新版本的PHP上的配置是否存在问题?

通常PHP核心设置
包含路径
也包含当前路径:它由
表示(一个点),添加到包含路径的列表中:

include_path=".;c:\php\includes"
引述:

在include路径中使用
,可以按其含义进行相对包含 当前目录。但是,显式地使用 包括
。/file'
,而不是让PHP始终检查当前目录 每一项都包括在内


是的,PHP会将任何空名称(非引号字符串)处理为常量名称。如果未定义此常量(如您的情况),PHP会将其转换为字符串(不过会发出通知)。

通知错误是因为您正在访问类似$someArray[DB_HOST]的数组。数组键周围应该有引号,比如$someArray['DB_HOST']。无引号是常量,键是字符串,而不是常量

包含路径问题也是相当标准的。如果您有以下文件:

index.php
includes/config.php
includes/include.php
如果加载index.php并包含文件
includes/include.php
,则必须键入完整路径
includes/include.php
。如果在
include.php
中,您希望包含
includes/config.php
。php将路径视为相对于加载原始脚本的位置(index.php)的路径。你可以这样想:

  • 在脚本中,加载并运行
    index.php
  • index.php
    中包含
    includes/include.php
    。这不会将您移动到
    includes/include.php
    ,而是获取
    includes/include.php
    ,并将代码带入
    index.php
  • includes/include.php
    中的所有代码都像从
    index.php
    中运行一样运行
  • 您可以包含
    includes/config.php
    。从技术上讲,您仍然在
    index.php
    中,因此您必须像从
    index.php
    中调用一样引用该文件
要修复包含路径,您可以使用函数将完整路径添加到包含目录(或相对于包含),然后可以从路径中删除
includes/
。如果在其他地方找不到该文件,PHP只会检查该文件是否在
includes/
中。您也可以只更改php.ini或.htaccess文件中的指令