1

私は昨夜これについて尋ねましたが、答えは私にグローバル配列を研究するように言いました. これを解決するために丸一日を費やした後、私はマンカードを犠牲にし、今助けを求めています. variable をエコーするために連携する 3 つのファイルがあります$body。3 つのファイルは、login.php、global.php、theme.php です。

ログイン ファイルは期待どおりに機能し、$body を echo に置き換えると既にログインしているというメッセージが表示されますが、テーマを簡単かつ効果的に組み込むために、配置上の理由から変数 $body を使用したいと考えています。テーマ ファイルで $body をエコーすると、何も表示されません。私のファイルの簡単な例です

ログイン.php

<?php 
include('../tools/global.php');

$body="
some scripting here";

?>

グローバル.php

<?php

function function1(){

   global $body;

}
function1();
print_r($body);

include('../theme/default.php');
include('config.php');


?>

default.php 別名 theme.php ファイル

<table border='0'>
<tr>
<td colspan='2'>
<center>bar</center>
</td>
</tr>
<tr>
<td width='10%'>
hey<br>hey<br>
</td>
<td>
hello
<?php

echo $body;
?>

</td>
</tr>
</table>

では、テーマ ファイルに常に $body をエコーするように、グローバルな $body を正確に登録するにはどうすればよいでしょうか。私はさまざまなことを試しましたが、何もうまくいかないようです。

4

2 に答える 2

0

Login.php含まれますglobal.phpが、含まれた後にのみ $body定義されます-そのため、では使用できませんLogin.phpglobal.phpglobal.php

で使用したい場合は、 global.phpそこで宣言してください!

于 2013-11-14T00:11:57.870 に答える
0

グローバルを調べることについてあなたが与えられたアドバイスは、おそらく悪いアドバイスだったと思います。グローバルが答えになることはほとんどありません。あなたもそれらを間違って使用しています。global キーワードを使用すると、関数内でグローバル変数 (関数の外部で定義) を使用できます。それはとても簡単です。ただし、変数を引数として関数に渡すことをお勧めします。さまざまなファイルで繰り返し使用したいものがある場合は、インクルード ファイルの本体だけでなく、インクルード ファイルの関数に入れます。たとえば、global.php には次のものがあります。

<?php
function renderPage($body) {
?>
<table border='0'>
<tr>
<td colspan='2'>
<center>bar</center>
</td>
</tr>
<tr>
<td width='10%'>
hey<br>hey<br>
</td>
<td>
hello
<?php

echo $body;
?>

</td>
</tr>
</table>

<?php
    }
?>

次に login.php で:

<?php
require('global.php');
$body = 'This is the login page.';
renderPage($body);
?>
于 2013-11-14T00:53:51.773 に答える