解决:错误与require或include无关。这与这个问题完全无关。对于那个很抱歉。 :(
我认为直到现在我对require / include有所了解。我有一个名为file_one
的文件,类似于$user_data = return_user_data_as_array()
。我的第二个文件file_two
,调用了$user_data
。现在,当我在调用函数和变量后在include 'file_two.php'
页面中执行file_one
时,页面将返回undefined variable user_data
。我想如果你在php代码中包含/要求一个文件,它会选择原始文件中写的任何变量吗?我该如何解决这个问题?
编辑:我还想提一下,虽然我的屏幕上弹出了未定义的变量错误,但“未定义”变量被正确回显。
文件一
//this require_once holds the function user_data()
require_once 'core/init.php';
$user_id = 1;
$profile_data = user_data($mysqli, $user_id);
//this calls file two
require_once 'file_two.php';
文件二或file_two.php
echo $profile_data['full_name'];
答案 0 :(得分:0)
这里的关键是在函数调用之前没有你的include。还要包含该函数,然后在文件二中调用它。
答案 1 :(得分:0)
我认为您必须在页面的其他位置出现错误。如果您在函数或类之外定义变量,并且在定义它之后包含使用它的文件,它应该可以正常工作:
<强> file_one.php 强>
<?php
function return_user_data_as_array(){
return array('name'=>'BenD');
}
$user_data = return_user_data_as_array();
include('file_two.php');
?>
<强> file_two.php 强>
<?php
print_r( $user_data );
?>
<强>结果:强>
Array
(
[name] => BenD
)
这应该都可以。您的错误可能在其他地方出现(例如,您可能在函数内部调用$user_data
而未指定global $user_data
,或者您在file_one.php中某处意外调用了$user_data
?)< / p>
现在您已经显示了一些代码,我想问题是user_data()
没有返回包含full_name
键的数组。尝试print_r($profile_data)
查看数组的外观。我猜测问题在于从user_data()
返回的内容(如果有的话!确保它包含return $x
条款!我花了很多时间试图找出逻辑错误,唯一的问题是我的函数没有返回任何东西)
答案 2 :(得分:0)
答案与问题中的问题无关。问题中的代码是正确的。