mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-11-03 05:41:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			1010 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1010 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Smarty plugin
 | 
						|
 *
 | 
						|
 * @package    Smarty
 | 
						|
 * @subpackage PluginsShared
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * evaluate compiler parameter
 | 
						|
 *
 | 
						|
 * @param array   $params  parameter array as given to the compiler function
 | 
						|
 * @param integer $index   array index of the parameter to convert
 | 
						|
 * @param mixed   $default value to be returned if the parameter is not present
 | 
						|
 *
 | 
						|
 * @return mixed evaluated value of parameter or $default
 | 
						|
 * @throws SmartyException if parameter is not a literal (but an expression, variable, …)
 | 
						|
 * @author Rodney Rehm
 | 
						|
 */
 | 
						|
function smarty_literal_compiler_param($params, $index, $default = null)
 | 
						|
{
 | 
						|
    // not set, go default
 | 
						|
    if (!isset($params[$index])) {
 | 
						|
        return $default;
 | 
						|
    }
 | 
						|
    // test if param is a literal
 | 
						|
    if (!preg_match('/^([\'"]?)[a-zA-Z0-9-]+(\\1)$/', $params[$index])) {
 | 
						|
        throw new SmartyException('$param[' . $index . '] is not a literal and is thus not evaluatable at compile time');
 | 
						|
    }
 | 
						|
 | 
						|
    $t = null;
 | 
						|
    eval("\$t = " . $params[$index] . ";");
 | 
						|
 | 
						|
    return $t;
 | 
						|
}
 |