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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
<?php
namespace Smarty;
/**
* class for the Smarty variable object
* This class defines the Smarty variable object
*
*/
#[\AllowDynamicProperties]
class Variable
{
/**
* template variable
*
* @var mixed
*/
public $value = null;
/**
* Other r/w properties for foreach, for, while, etc.
*/
public $step, $total, $first, $last, $key, $show, $iteration, $index = null;
/**
* @param mixed|null $value
*/
public function setValue($value): void {
$this->value = $value;
}
/**
* if true any output of this variable will be not cached
*
* @var boolean
*/
private $nocache = false;
/**
* @param bool $nocache
*/
public function setNocache(bool $nocache): void {
$this->nocache = $nocache;
}
/**
* create Smarty variable object
*
* @param mixed $value the value to assign
* @param boolean $nocache if true any output of this variable will be not cached
*/
public function __construct($value = null, $nocache = false)
{
$this->value = $value;
$this->nocache = $nocache;
}
public function getValue() {
return $this->value;
}
/**
* <<magic>> String conversion
*
* @return string
*/
public function __toString()
{
return (string)$this->value;
}
/**
* Handles ++$a and --$a in templates.
*
* @param $operator '++' or '--', defaults to '++'
*
* @return int|mixed
* @throws Exception
*/
public function preIncDec($operator = '++') {
if ($operator == '--') {
return --$this->value;
} elseif ($operator == '++') {
return ++$this->value;
} else {
throw new Exception("Invalid incdec operator. Use '--' or '++'.");
}
return $this->value;
}
/**
* Handles $a++ and $a-- in templates.
*
* @param $operator '++' or '--', defaults to '++'
*
* @return int|mixed
* @throws Exception
*/
public function postIncDec($operator = '++') {
if ($operator == '--') {
return $this->value--;
} elseif ($operator == '++') {
return $this->value++;
} else {
throw new Exception("Invalid incdec operator. Use '--' or '++'.");
}
}
/**
* @return bool
*/
public function isNocache(): bool {
return $this->nocache;
}
}
|