File tree 1 file changed +36
-0
lines changed
components/expression_language
1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -102,6 +102,42 @@ JavaScript::
102
102
103
103
This will print out ``Hi Hi Hi! ``.
104
104
105
+ Nullsafe operator
106
+ ~~~~~~~~~~~~~~~~~
107
+
108
+ Working with mutable objects can be, sometimes, error prone.
109
+ The ``?. `` syntax can help avoid unnecessary and redundant checks
110
+ when trying to access properties or methods on an object with dynamic structure::
111
+
112
+ class Apple
113
+ {
114
+ public $variety;
115
+ }
116
+
117
+ $apple = new Apple();
118
+ $apple->variety = 'Honeycrisp';
119
+
120
+ var_dump($expressionLanguage->evaluate(
121
+ 'fruit?.color',
122
+ [
123
+ 'fruit' => $apple,
124
+ ]
125
+ ));
126
+
127
+ This will print out ``null `` instead of throwing an ``Exception ``.
128
+
129
+ Similarly::
130
+
131
+ var_dump($expressionLanguage->evaluate(
132
+ 'fruit?.eatMe()',
133
+ [
134
+ 'fruit' => $apple,
135
+ ]
136
+ ));
137
+
138
+ Will print out ``null `` since the method ``eatMe() `` we trying to access
139
+ on the same ``Apple `` object does not exist.
140
+
105
141
.. _component-expression-functions :
106
142
107
143
Working with Functions
You can’t perform that action at this time.
0 commit comments