> > On Aug 10, 2020 at 11:02 AM, <Ilija Tovilo (mailto:tovilo.il...@gmail.com)> > wrote: > > > > Hi Mike > $card_html = <<<HTML <div id="card-{$card->id}" class="card > {$card?->css}"> {$card->content} </div> HTML; Two things: 1. We're solely > talking about string interpolation without braces {}. You're using braces in > your example and this does indeed work right now. > > > > > > >
Thank you for clarifying. That was not obvious to me. If it was explicitly mentioned in the thread and I missed it, I apologize. > > > 2. The semantics of ?-> are different than you're depicting them to be in > this example. ?-> will only short-circuit if $card is null, not when the > property "css" is not defined. Thus, if $card was null your example would've > already failed at $card->id. > > > > > > > Good point. I was remembering a frequent problem but did not convey the use-case correctly so please let me update it: > > class="card {$card->attributes?->css}" > > > > > The only real information I was trying to convey was that when > generating HTML there is a frequent need to output a value if one exists but > output nothing otherwise. So hopefully this time I got the usage correct for > this new feature. -Mike P.S. I would have tested it before sending, but I do not have a local PHP install that I can test this syntax with yet. > > > > > > > > > > > > > > > > > > > > > > > > > > >