Skip to content

Commit 23bf15d

Browse files
sofrecomnaassofienjaviereguiluz
authored andcommitted
[ExpressionLanguage] Add support for Nullsafe syntax for accessing object's properties and methods.
1 parent f153ae4 commit 23bf15d

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

components/expression_language/syntax.rst

+36
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,42 @@ JavaScript::
102102

103103
This will print out ``Hi Hi Hi!``.
104104

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+
105141
.. _component-expression-functions:
106142

107143
Working with Functions

0 commit comments

Comments
 (0)