2016-08-22 21 views
0

問題があります。私はindex.phpに私はブールログインチェックを持っている、 PHP変数がインクルードファイルに含まれていません

index.php -> template_body.php --> header.php 

header.phpinclude("header.php")

今と呼ばれる含ま私は別のファイルを持っている template_body.phpindex.phpinclude_once("include/template_body.php");) に含まれているテンプレートファイル( template_body.php)を持っています。しかし、私は template_body.phpのブール値にしかアクセスできず、 header.phpにはアクセスできません。

これを実現する方法はありますか?あなたがPHPで変数のスコープについてこのポストの答えの表情を取る必要があります

+0

チェックあなたは 'ヘッダの含まれている場合(どちらのバージョンが表示されたコンテンツを作る)素晴らしいことです.php'は変数の前にはありません;) – Bobot

+0

header.phpにはindex.phpページの先頭が含まれていますが、includeの後ろにその変数を作成すると思います。変数がheader.phpファイルに入っていないことを確認してください –

+0

私はあなたがリバースチェーンに従っていると思います。 –

答えて

0

Reference: What is variable scope, which variables are accessible from where and what are "undefined variable" errors?

例の下では

のindex.php

<?php 
    $test = "test"; 
    include_once("file1.php"); 
?> 

を働いていますtemplate_body.php

<?php 
    include("header.php"); 
?> 

header.phpの

<?php 
    echo $test; 
?> 

私はそれがスコープの問題だ読むことができるものから出力だから、再び

test 

、。

よろしく、

エリック

+0

やあ、私は変数と関数を扱う方法を知っています。しかし残念なことに、この郵便はこの問題を扱っていない。 varは1レベルしか到達できませんが、2レベルは到達できません。そして、haventが理由を見つけました... – jQuery

+0

問題を再現するコードサンプルを投稿できますか? – Eric

+0

今すぐ再現します。何か他のことを考えてください... – jQuery

0

は、私は私の質問への解決策を見つけた:

私は

include_once("include/template_body.php"); 
include_once("include/header.php"); 

を使用している場合、それは動作しません...私は

を使用している場合
include_once __DIR__ ."include/template_body.php"; 
include_once __DIR__ ."include/header.php"; 

では変数をアクセス可能にします。

は、しかし、私はその動作のために何の説明を持っていないので、誰かが私にこれを説明することができれば:)

をそれが

+0

'include_once __DIR__。"/include/template_body.php ";'注意: '__DIR__'という文字通りのパスの先頭に '/'をつけるとスラッシュが付きません。必ず絶対パスを使用してください。絶対パスで相対ディレクトリを使用できます。 –

関連する問題