File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
components/expression_language Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -102,6 +102,42 @@ JavaScript::
102102
103103This 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
107143Working with Functions
You can’t perform that action at this time.
0 commit comments