2016-12-22 6 views
-1

私はファイルの設定された場所を検索して返すカスタム関数を作成しました。私はこの関数を含むヘルパーをインクルードし、変数を含むファイルをインクルードします。カスタムインクルード関数内から変数にアクセスするPHP

私はこの機能を使用して、インクルードファイルのこれらの変数にアクセスできるようにしたいと考えています。ここで

は私の設定です:

メインファイル

<?php 

require 'helper.php'; 

require 'variable.php'; 

$Helper -> include_asset("text.php"); 

?> 

Helper.php

<?php 

function include_asset($file) { 

    $full_path = "path/to/assets/folder/".$file; 

    return (file_exists($full_path)) ? include $full_path : "file ".$file." does not exist"; 
} 

?> 

variable.php

<?php $text = "hello"; ?> 

text.php

<?php echo $text; ?> 

問題は、メインファイル内の変数$テキストが含まれているファイル内でアクセスができますが、できないことです。私はそれは関数の可変スコープだが、わからないカスタム関数をインクルードすることと関係があると思う。どんな助け?

+0

を。または、グローバルを使用してください:http://php.net/manual/en/reserved.variables.globals.php –

答えて

0

ファイルを関数内に含めるので、作成する変数はデフォルトで関数のローカルになります。あなたは、彼らが地球にするためにglobal宣言を使用することができます。

variable.php:あなたはどちらか、ファイルをインクルードする機能を使用しないようにする必要があります

<?php 
global $text; 
$text = "hello"; 
+0

私はこれが多分理由を考えました。 $ Helper - > include_asset( "text.php")に変数の配列をスローすることは可能でしょうか?それらをアクセス可能にしますか? – user3683675

+0

あなたはそれが何を意味するか分かりません。あなたが関数を呼び出す方法は無関係です。重要なのは、変数をローカルにする関数の中でインクルードすることです。 – Barmar

+0

$ヘルパー - > include_asset( "text.php"、$ array); $ arrayは関数がアクセスできる変数の配列です。そのように変数はインクルード関数の範囲内にあります – user3683675

関連する問題