Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Variables_Require - Fatal编程技术网

从另一个.php文件调用变量时出现问题

从另一个.php文件调用变量时出现问题,php,variables,require,Php,Variables,Require,以前也有人问过类似的问题,但在密切关注几个工作示例之后,我无法让这一点适用于我 我试图访问insert-name.php中声明的变量$nameValues insert-name.php是第一个运行的脚本: error_reporting(-1); $nameValues = "'".implode("', '", array_values($nameArray))."'"; print_r($nameValues); // ret

以前也有人问过类似的问题,但在密切关注几个工作示例之后,我无法让这一点适用于我

我试图访问insert-name.php中声明的变量
$nameValues

insert-name.php是第一个运行的脚本:

 error_reporting(-1);
$nameValues  = "'".implode("', '", array_values($nameArray))."'";
print_r($nameValues); // returns the expected variable
insert-answer.php是要运行的第二个脚本:

 error_reporting(-1);
require "insert-name.php";
if (isset($nameValues)) {
   print_r("nameValues variable:" . $nameValues);
} else {
   echo "variable nameValues does not exist";
}
//returns nameValues variable:'' indicating that $nameValues exists but is empty
这两个.php文件都存储在我的Web服务器上的同一文件夹中。我尝试了使用
require
include
语句。我成功地使用了
require
语句在两个脚本中连接到我的数据库,但不确定为什么它不适用于
insert name.php

编辑: 未报告任何错误。 If语句返回“nameValues变量:“”,表示
$nameValues
变量存在但为空

我还尝试替换
require“insert name.php”require\uuuuu DIR\uuuu.“/insert name.php”进行编码>从if语句返回“变量名称值不存在”


因为两者都没有给出致命错误,
require
语句都成功访问了insert-name.php文件,但是我不知道为什么一个方法认为
$nameValues
不存在,而另一个方法认为
$nameValues
为空。

从另一个文件访问变量没有问题,就像您提供的变量在同一范围内一样(一个不在函数内等)。在您的情况下,它看起来只是您如何调用
print\r()

当您执行
print\r('nameValues变量:“.$nameValues)
时,您正在将
$nameValues
转换为字符串

尝试以下操作以转储您的
$nameValues

error_reporting(-1);
require "insert-name.php";
if (isset($nameValues)) {
    echo "nameValues variable: ";
    print_r($nameValues);
} else {
    echo "variable nameValues does not exist";
}
正如你所说:

返回nameValues变量:“”

我忽略了一个细节,即结尾的引号。在PHP中回显字符串时,它只打印内容(没有打印引号,除非它们在字符串中)

实际上,这一切只意味着
$nameArray
是空的,所以请检查生成该值的脚本。此外,由于
内爆()
的工作方式,
数组值()
在这里是完全冗余的


测试这一点的简单方法是
echo count($nameArray);
。如果输出为“0”,则数组为空。

尝试
require\uuuuu DIR\uuu../insert name.php”
此外,请添加
错误报告(-1)
尽可能早地在脚本中发布弹出的错误。谢谢Nick,我忘了在这里包含
错误报告
。没有显示错误。好了,现在用var\u dump替换print\r,让我们确保得到的是空字符串,而不是FALSE、0或null。此外,如果添加
\u DIR\uu\uu
更改输出,这意味着这是一个空字符串问题的一部分。这是因为包含路径在PHP中是如何工作的。现在我希望您确保始终使用
\uuuuu DIR\uuuu