dポイントプレゼントキャンペーン実施中!

お世話になります。

PHPからプロパティファイルを呼び出しプロパティファイル内の値を表示させるようにしたいと考えています。
ファイルはすべて同階層においてあります。
下記がソースの抜粋になります。

プロパティファイル
setting.prpperties
------------------------------------
PAGETITLE = "TOP"
SHOW_FLAG = "1"
------------------------------------

phpファイル1

top.php
------------------------------------
<?php
print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$setting= parse_ini_file("setting.properties");
require_once './module.php';
?>
<html>
<head>
<title><?php print $word['PAGETITLE'];?></title>



</head>
<body id="back">
<?php print check();?>



------------------------------------

PHPファイル2
module.php
------------------------------------
function check(){
$hour= date( "H", time());
if($setting['SHOW_FLAG '] == 1 ){
print "True";
}else{
print "False";
}

この時、"top.php"の"<title><?php print $word['PAGETITLE'];?></title>"部分ではプロパティファイルが正常に読み込まれ”TOP”と表示されるのですが、”module.php”ではプロパティファイルが読み込めず”FALSE”となってしまいます。
”print $setting['SHOW_FLAG ']; ”として確認したところNULLでした。
試しに、”module.php”に”$setting= parse_ini_file("setting.properties");”を記述したのですが症状は改善しませんでした。”FALSE”は表示されているのでされているので”module.php”が読み込めていないわけでわないと思われます。

”module.php”の中でうまくプロパティファイルが読み込めない原因、または対処法に心当たりのある方がいましたらアドバイスをお願いいたします。

A 回答 (1件)

module.phpというよりも、check()というユーザー定義関数の中で使っているからでしょう。

変数のスコープは、requireやincludeで読み込んだ部分まではありますが、ユーザー定義関数までは及びません。

http://www.php.net/manual/ja/language.variables. …

関数の引数として渡す(呼び出し側でcheck($settings)として関数側はfunction check($arg)として$argを使う)とか、$settingをグローバル変数にする(けっしてお勧めは出来ません)などが必要です。
    • good
    • 0
この回答へのお礼

早速の回答有り難うございます。
変数のスコープ全く考えていませんでした。

私もグローバル変数としては使いたくないので、アドバイスいただいた引数として使う方で修正したところ無事解決できました。
ありがとうございました。

お礼日時:2011/11/02 16:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!