2012-01-27 10 views
5

私はいくつかのローカル変数とグローバル変数(例えば$ foo)を持つPHPファイルを持っています
スマートオブジェクトがこのファイルから呼び出されています。
PHPファイルを変更せずにスマートスクリプトから$ fooにアクセスするにはどうすればよいですか?smartyからPHPファイルの変数(ローカルまたはグローバル)にアクセスする

ありがとうございました

+1

スマートオブジェクトに変数を割り当てる必要があります。スマートオブジェクトにアクセスすることはできません。これを回避する魔法の杖はありません。 – rdlowrey

答えて

4

できません。それをPHPファイル内のsmartyに割り当てる必要があります。

$smarty->assign('foo', $foo); 
8

あなたは、このようBASEと呼ばれる、と定義された定数変数がある場合:

$smarty.const.BASE 
5

あなたがために使用:あなたはSmartyの中で次のように変数にアクセスすることができます

define('BASE', 'Boise'); 

{php}{/php}タグを使用してこの問題を回避することができますが、これは非推奨であるため、$smarty->assign()で変数を割り当てる必要がありますが、唯一の例外は定数とサーバvariablですあなたはまだ$smartyオブジェクト経由で直接アクセスしています。

(最初に無効にした可能性のあるセキュリティ上の理由を気にしないようにするには、{php}タグを再度有効にすることもできます)。

よう$_GET$_POST$_COOKIE$_SERVER$_ENV$_SESSIONとしてリクエスト変数のいずれも$smartyオブジェクトを介して利用可能です。

私が扱っているデータのほとんどは、(複製された)変数を大量に作成することなく、$smartyオブジェクトからアクセスすることができます。

例えば:定数へのアクセス

  • ます。$ _SERVERのVARのアクセス{$smarty.const.MY_CONST_VAL}
  • :// Everything in $_SESSION{$smarty.session.MY_SESSION_VAL}が利用可能
  • です:// Everything in $_SERVER {$smarty.server.REQUEST_METHOD}は$ _SESSIONから何かをつかむ
  • アクセス可能です
関連する問題