0

私の問題は、require_once を使用して配列を持つファイルを含めると、それを含むファイルからその配列にアクセスできないことです。たとえば、これは私の foo.php ファイルです

<?php
$array['name'] = 'John';
$array['age'] = 34;
?>

これが私の bar.php ファイルです

<?php
//if i use require here instead of require once, the var_dump returns true
require_once('foo.php');
//This would return null
var_dump($array);
?>

問題を見つけるにはどうすればよいですか?

4

2 に答える 2

0

わかりましたので、これとまったく同じ問題でだまされました。これが、問題が発生していた元のセットアップです。

<?php
require_once('SiteProcesses.class.php');
$login = new SiteProcess();

$login->testForLogin();

require_once('header.php');
require_once('settings.php'); # This is where the array was set

var_dump($array);
?>

そしてもちろん、出力は次のとおりです。

NULL

もう少し情報:

「 testForLogin()」メソッドと「header.php 」ファイルの両方に「 settings.php 」ファイルを含めていました。最終的に、この構成でアレイが正しく機能するようになりました。

<?php
require_once('settings.php'); # This is where the array was set

require_once('SiteProcesses.class.php');
$login = new SiteProcess();

$login->testForLogin();

require_once('header.php');

var_dump($array);
?>

そして今、スクリプトは正しく機能しています。

array(2) { [1]=> string(1) "1" [2]=> string(1) "2" }

したがって、他のすべてのファイルが含まれた後に設定ファイルを含めた後、設定ファイルから配列を呼び出そうとすると、明らかに何かがうまくいかなかったようです。設定ファイルを最初に含まれるファイルとして配置するだけでうまくいきました。

**罪のない人を保護するために名前が変更されました

**はい、この投稿を目にした方の中には、同じことを別の方法で行っている方もいらっしゃると思いますが、もちろん、あなたは自分の方法の方が優れていると考えています。ヤダヤダ。あなたの意見は自分だけにしておいてください。別の方法が必要な場合は、それを探しに行きます。私の投稿にあなたの歓迎されない方法を挿入する必要はありません。ありがとうございました。

于 2013-10-18T15:15:01.287 に答える
0

問題ありません。このコードは、require_one または require の両方で正常に実行されます。あなたは何か他の間違ったことをしています。

于 2012-07-08T13:51:46.100 に答える