fetchPairs() s float klíčem
- Kamil Valenta
- Člen | 758
Ahoj.
Nevím, zda to považovat za bug Nette, ona je to trochu vlastnost PHP, ale
působí to hůř odhalitelné chyby a Nette by to mohlo snadno řešit.
Pokud mám DB tabulku:
key INT | val STRING |
1 | foo |
2 | bar |
Následně zavolám table()->fetchPairs(‚key‘, ‚val‘);
Dostanu pole dle očekávání:
Array (
1 ⇒ foo,
2 ⇒ bar
)
Problém nastane, když bude klíč typu float, protože PHP umí klíče jen celočíselné nebo textové.
key FLOAT | val STRING |
1.0 | foo |
1.5 | bar |
Po fetchPairs() dostanu neočekávané pole:
Array (
1 ⇒ bar
)
Stačilo by, kdyby fetchPairs() při floatovém klíči zapisovalo do pole např. pod indexem ['\'' . $key . '\''], tím se float klíč zachová, protože bude interpretován jako string.
Je to hloupost?