3

解決済み:エラーはrequireまたはincludeとは何の関係もありませんでした。それは質問とはまったく関係がありませんでした。申し訳ありません。:(

今までrequire/includeを理解していたと思いました。file_oneこのような名前のファイルがあります$user_data = return_user_data_as_array()。私の2番目のファイルfile_twoは、を呼び出します$user_data。ここで、関数と変数が呼び出された後include 'file_two.php'file_oneページにアクセスすると、ページは。で戻りますundefined variable user_data。phpコードにファイルを含める/要求すると、元のファイルに書き込まれた変数が取得されると思いましたか?これをどのように修正しますか?

編集:未定義の変数エラーが画面に表示されますが、「未定義」の変数は正しくエコーアウトされます。

ファイル1

//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';

ファイル2またはfile_two.php

echo $profile_data['full_name'];
4

3 に答える 3

0

ここで重要なのは、関数呼び出しの後ではなく、前にインクルードを含めることです。また、関数を含めて、ファイル2で呼び出します。

于 2012-09-21T00:52:04.707 に答える
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指定せずに関数内から呼び出している場合や、file_one.phpのどこかを誤っglobal $user_dataて呼び出している場合など)。$user_data

編集

いくつかのコードを示したので、問題はキーuser_data()を含む配列を返さないことだと思います。配列がどのように見えるかを確認してくださいfull_nameprint_r($profile_data)問題は何から返されるかにあると推測していますuser_data()(もしあれば!そこに句が含まれていることを確認してくださいreturn $x!唯一の問題が私の関数がしなかったということであったときに論理エラーを理解しようと多くの時間を費やしました何も返さない)

于 2012-09-21T01:12:39.557 に答える
0

答えは質問の問題とは何の関係もありませんでした。問題のコードは正しいです。

于 2012-09-23T23:24:21.157 に答える