2012-01-27 6 views
5

Mam plik php, który ma pewne lokalne i globalne zmienne (np $ foo)
smarty obiekt jest wywoływana z tego pliku.
Jak mogę uzyskać dostęp do $ foo ze skryptu smarty bez zmiany pliku PHP?Dostęp do zmiennej (lokalny lub globalny) z pliku PHP z smarty

Dzięki

+1

Musisz przypisać zmienną do obiektu smarty lub smarty nie będzie mógł uzyskać do niego dostępu. Nie ma magicznej różdżki, aby to obejść. – rdlowrey

Odpowiedz

4

Nie możesz. Musisz przypisać go do smarty w pliku PHP.

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

Jeśli masz stałą zmienną bazową i zdefiniowane tak:

define('BASE', 'Boise'); 

można uzyskać dostęp do zmiennej w smarty następujący sposób:

$smarty.const.BASE 
5

użyłeś być można to obejść za pomocą tagów {php}{/php}, ale ponieważ jest to przestarzałe, teraz musisz przypisać zmienne za pomocą $smarty->assign(), jedynym wyjątkiem są stałe i zmienna serwera es, do którego nadal masz bezpośredni dostęp za pośrednictwem obiektu $smarty.

(Możesz również ponownie włączyć znaczniki {php}, jeśli chcesz, a nie dbają o potencjalne zabezpieczenia, dla których zostały wyłączone w pierwszej kolejności).

Każda ze zmiennych żądanie takie jak $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV i $_SESSION są dostępne na obiekcie $smarty.

Z tego powodu - większość danych, z którymi pracuję, można łatwo uzyskać za pośrednictwem obiektu $smarty bez konieczności tworzenia ton (zmienionych) zmiennych.

np .:

  • Dostęp stały: {$smarty.const.MY_CONST_VAL}
  • Dostęp do $ _SERVER var: {$smarty.server.REQUEST_METHOD} // Everything in $_SERVER dostępną
  • chwytając coś z $ _SESSION: {$smarty.session.MY_SESSION_VAL} // Everything in $_SESSION jest dostępny
Powiązane problemy