Expression.php
1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?PHP
/**
* patTemplate modfifier Expression
*
* $Id: Expression.php,v 1.1 2004/06/29 21:12:57 schst Exp $
*
* @package patTemplate
* @subpackage Modifiers
* @author Stephan Schmidt <schst@php.net>
*/
/**
* patTemplate modfifier Expression
*
* Evaluates an expression and returns one of
* the defined values for true and false.
*
* Possible attributes are:
* - expression (string)
* - true (string)
* - false (string)
*
* @package patTemplate
* @subpackage Modifiers
* @author Stephan Schmidt <schst@php.net>
* @link http://www.php.net/manual/en/function.wordwrap.php
*/
class patTemplate_Modifier_Expression extends patTemplate_Modifier
{
/**
* modify the value
*
* @access public
* @param string value
* @return string modified value
*/
function modify( $value, $params = array() )
{
/*
* true and false
*/
if( !isset( $params['true'] ) )
$params['true'] = 'true';
if( !isset( $params['false'] ) )
$params['false']= 'false';
/*
* replace the value in the expression
*/
$params['expression'] = str_replace( '$self', "'$value'", $params['expression'] );
@eval( '$result = '.$params['expression'].';' );
if( $result === true )
return $params['true'];
return $params['false'];
}
}
?>