Nefunkční chaining v Latte 2.10.4
- Kcko
- Člen | 468
Ahoj,
zaktualizoval jsem Nette 2.4 protože jsem si po delší době chtěl
vyzkoušet novější Latte věci dle https://blog.nette.org/…astni-funkce
a dalších článků v blogu.
V composer.locku mi svítí verze Latte 2.10.4.
Verze PHP 7.1
Už tohle mi spadne na Notice „undefined variable $order“
<?php
{$order?->id}
?>
Můj composer.json
<?php
{
"config": {
"platform": {
"php": "7.1"
}
},
"require": {
"nette/nette": "2.4.*",
"kdyby/events": "3.1.*",
"erusev/parsedown": "^1.7",
"aleswita/visualpaginator": "1.0",
"dg/twitter-php": "3.x",
"aleswita/formrenderer": "^1.3"
}
}
?>
Co dělám špatně?
- Kcko
- Člen | 468
Polki napsal(a):
Nejspíš nic :D
Mě to včera zaskočilo taky :DPřišlo mi to srandovní, že to tam David přidal, jelikož chtěl udělat novinku v Latte, pak byl překvapený, že to je přidáno nativně do PHP a najednou to v PHP, kde to má fungovat v Latte nefunguje.
Docela paradoxní sranda.
Čau,
null-safe operátor je, ale až od PHP 8 ne?
Já mám 7.1 takže tam by se to mělo chovat dle Latte, ale neděje se tak.
Ale třeba makro {trace} mi funguje, které bylo až v Latte 2.10, takže to mám snad vše nainstalováno správně.
Editoval Kcko (15. 10. 2021 23:11)
- Polki
- Člen | 553
Kcko napsal(a):
Polki napsal(a):
Nejspíš nic :D
Mě to včera zaskočilo taky :DPřišlo mi to srandovní, že to tam David přidal, jelikož chtěl udělat novinku v Latte, pak byl překvapený, že to je přidáno nativně do PHP a najednou to v PHP, kde to má fungovat v Latte nefunguje.
Docela paradoxní sranda.Čau,
null-safe operátor je, ale až od PHP 8 ne?Já mám 7.1 takže tam by se to mělo chovat dle Latte, ale neděje se tak.
Ale třeba makro {trace} mi funguje, které bylo až v Latte 2.10, takže to mám snad vše nainstalováno správně.
Jo, to máš pravdu. Zajímavý ale je, že mi to dělá ten stejnej problém
jako tobě Latte2.10.3 a PHP8.0.6
Tak jsem to vyřešil prostě tak, že jsem to nepoužil…
EDIT1 : Našel jsem info, že by to mělo v nejnovějším Latte fungovat takto:
{$variable??->result}
https://blog.nette.org/…epsi-nakonec#…
Editoval Polki (16. 10. 2021 6:08)
- Kcko
- Člen | 468
Tady to je popsáno trošku jinak https://latte.nette.org/cs/syntax#… a je to IMHO zavádějící, ale se 2 otazníky se to chová konečně normálně.
Třeba se k tomu jetě vyjádří někdo povolanější nebo se to opraví v dokumentaci a případně i na blogu.
:)
- Marek Bartoš
- Nette Blogger | 1263
Imho jen změnit toto, jinak null-safe a undefined-safe vypadají okay
můžete používat optional chaining $var?->call()?->elem[1]?->item
->
můžete používat optional chaining $var??->call()??->elem[1]??->item
{$order->item?->name} // znamená isset($order->item) ? $order->item->name : null
->
{$order->item??->name} // znamená isset($order->item) ? $order->item->name : null
Editoval Marek Bartoš (17. 10. 2021 13:20)
- Martk
- Člen | 661
@DavidGrudl Asi toto https://ctrlv.cz/…/17/aUTZ.png , problém je ten, že je napsané že se to chová jako isset, přitom to není pravda.
Editoval Martk (17. 10. 2021 14:45)