-
-
Notifications
You must be signed in to change notification settings - Fork 467
/
spropertyaccess.zep
97 lines (78 loc) · 1.69 KB
/
spropertyaccess.zep
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
/**
* Class with constructor + params
*/
namespace Stub;
class SPropertyAccess
{
protected static a;
private static b;
protected static delimiter = ".";
protected static _delimiterWithUnderscore = ".";
protected static stringVar = "";
protected static intVar = 0;
protected static doubleVar = 0.0;
protected static arrayVar = [];
public function __construct()
{
let self::a = "abc";
let self::b = substr(self::a, 0, 1);
let ScallExternal::sproperty = self::b;
let self::b = ScallExternal::sproperty;
}
public function testArgumentWithUnderscore(var delimiter = null)
{
if empty delimiter {
let delimiter = self::_delimiterWithUnderscore;
}
return delimiter;
}
public function testArgument(var delimiter = null)
{
if empty delimiter {
let delimiter = self::delimiter;
}
return delimiter;
}
public static function mutateStringVarInsideCycle() -> string
{
var i;
for _ in range(0, 3) {
let i = " + ";
let self::stringVar = self::stringVar . i;
}
return self::stringVar;
}
/**
* @see https://github.com/zephir-lang/zephir/issues/1494
*/
public static function mutateIntVarInsideCycle() -> int
{
var i;
for _ in range(0, 3) {
let i = 42;
let self::intVar = i;
}
return self::intVar;
}
/**
* @see https://github.com/zephir-lang/zephir/issues/1494
*/
public static function mutateDoubleVarInsideCycle() -> double
{
var i;
for _ in range(0, 3) {
let i = 3.14;
let self::doubleVar = i;
}
return self::doubleVar;
}
public static function mutateArrayVarInsideCycle() -> array
{
var i, j;
for i in range(0, 3) {
let j = [i: i];
let self::arrayVar = self::arrayVar + j;
}
return self::arrayVar;
}
}