почему такие разногласия в пхп и смарти?

Mira

Guest
почему такие разногласия в пхп и смарти?

есть два файла
PHP:
<?

function f_a(){
	global $a;
	$a = "set_a=b";
	echo "<br>";
	echo $a;	

}

$a ="var_a=a";
echo "<br>";
echo $a;
f_a();
echo "<br>";
echo $a;

include 'file_name.inc';

require 'smarty/Smarty.class.php';
$smarty = new Smarty;

$smarty->request_use_auto_globals = true;
$smarty->global_assign = true;

$smarty -> display ("test.tpl");

?>

PHP:
{php}

$a ="var_a=a";
echo "<br>";
echo $a;
f_a();
echo "<br>";
echo $a;

{/php}

так вот , вопрос уже задавался, но к сожалению ничего из того что советовали не помогло.

при выполнении самого пхп выводиться правильно
var_a=a
set_a=b
set_a=b

а вот при выводе этого же в смарти
var_a=a
set_a=b
var_a=a

последнее не есть хорошо!
 

telepuzik

тинки-винки
гм... во-первых,
PHP:
$smarty->global_assign
используется несколько по-другому:http://smarty.php.net/manual/en/variable.global.assign.php. Там написано, что это - список, а не true/false;
поэтому кстати вполне и не работает, т.к. код все таки исполняется внутри класса смарти.
вот так должно работать:
PHP:
{php} 
global $a;
$a ="var_a=a"; 
echo "<br>"; 
echo $a; 
f_a(); 
echo "<br>"; 
echo $a; 

{/php}
 

Demiurg

Guest
а зачем вообще использовать php в шаблонах ?
 

telepuzik

тинки-винки
Я -- не знаю.
Но ведь можно же :) вот и используют.
На самом деле - да, иногда приходится. Но это что-то типа исключения, подтверждающего правило. Например, делая себе шаблонизатор типа смарти (только легче и без всех лишних "фич", которые есть в смарти) я после долгого колебания таки оставил возможность встраивать код в шаблон. Но это - на крайний случай. Пока не понадобилось не разу.
 
Сверху