3

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

3 回答 3

0

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

于 2012-09-23T23:24:21.157 回答
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,或者您不$user_data小心调用了 file_one.php 中的某处?)

编辑

现在您已经展示了一些代码,我想问题在于user_data()没有返回包含full_name密钥的数组。试着print_r($profile_data)看看数组是什么样子的。我猜问题在于返回的user_data()内容(如果有的话!确保它return $x在其中包含一个子句!我花了很多时间试图找出一个逻辑错误,而唯一的问题是我的函数没有'不返回任何东西)

于 2012-09-21T01:12:39.557 回答
0

这里的关键是在函数调用之前而不是之后包含你的内容。也只需包含该函数,然后在文件二中调用它。

于 2012-09-21T00:52:04.707 回答