PHP中的Require / Include和Undefined Variables

时间:2012-09-21 00:44:47

标签: php variables include require

解决:错误与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'];

3 个答案:

答案 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)

答案与问题中的问题无关。问题中的代码是正确的。