3 * patTemplate modfifier Expression
5 * $Id: Expression.php 440 2008-03-30 09:00:16Z fishbone $
8 * @subpackage Modifiers
9 * @author Stephan Schmidt <schst@php.net>
13 * patTemplate modfifier Expression
15 * Evaluates an expression and returns one of
16 * the defined values for true and false.
18 * Possible attributes are:
19 * - expression (string)
23 * @package patTemplate
24 * @subpackage Modifiers
25 * @author Stephan Schmidt <schst@php.net>
26 * @link http://www.php.net/manual/en/function.wordwrap.php
28 class patTemplate_Modifier_Expression extends patTemplate_Modifier
35 * @return string modified value
37 function modify( $value, $params = array() )
42 if( !isset( $params['true'] ) )
43 $params['true'] = 'true';
44 if( !isset( $params['false'] ) )
45 $params['false']= 'false';
48 * replace the value in the expression
50 $params['expression'] = str_replace( '$self', "'$value'", $params['expression'] );
52 @eval( '$result = '.$params['expression'].';' );
54 if ($result === true) {
55 return str_replace( '$self', $value, $params['true'] );
57 return str_replace( '$self', $value, $params['false'] );