Zadejte hledaný výraz...

PHP chyba on line

Petr
verified
rating uzivatele
11. 12. 2019 09:01:27
Zdravím,
mám tu problém s jednou aplikací.
Hlásí mi to tuto chybu
Warning: count(): Parameter must be an array or an object that implements Countable in
/www/query-ads.php on line 89
na line 89 je toto:
if (count($keywords) != 0) { $query->containedIn($ADS_KEYWORDS, $keywords); }
Dokázal by mi někdo poradit?
11. 12. 2019 09:01:27
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428167
Steeta
verified
rating uzivatele
(3 hodnocení)
11. 12. 2019 09:05:24
V proměnné keywords není pole nebo objekt, píše ti to. Bude tam něco jiného než očekává
11. 12. 2019 09:05:24
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428166
Pavel Mareš
verified
rating uzivatele
(19 hodnocení)
11. 12. 2019 10:19:35
Dej var_dump() na ty proměnný před podmínkou a zjisti obsah.
11. 12. 2019 10:19:35
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428165
ne
verified
rating uzivatele
(22 hodnocení)
11. 12. 2019 10:20:50
BC break od php 7.2.0 - count musi obsahovat coutable premennu..
pridaj pred tu podmienku dalsiu na overenie, aky typ premennej $keywords je..
resp. is_countable() ak pouzivas PHP >= 7.3
11. 12. 2019 10:20:50
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428164
node
verified
rating uzivatele
(5 hodnocení)
11. 12. 2019 10:37:58
!empty($keywords) ti zachyti null.
11. 12. 2019 10:37:58
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428163
ne
verified
rating uzivatele
(22 hodnocení)
11. 12. 2019 10:43:49
ale nechyti true, int okrem 0, neprazdny string....
ak si nie je isty, ci sa vobec $keywords inicializuje tak este isset()
ideal:
if ( ( isset($keywords) ) and ( is_array($keywords) ) and ( count($keywords) != 0 ) ) { }
11. 12. 2019 10:43:49
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428162
node
verified
rating uzivatele
(5 hodnocení)
11. 12. 2019 11:27:16
ale nechyti true, int okrem 0, neprazdny string....
tak to je jasne, ale ratam ze ta premenna ma dopredu urcitelny typ a nie neobmedzeny pocet typov. riesit is_array, count a podobne... jasne, ak clovek nevie co mu pride, ale znovu pochybujem ze ten input je az tak dynamicky. to by potom asi akykolvek dynamicky jazyk musel robit tristo kontrol na kazdu jednu premennu...takze sa vratme do praktickej reality trosku :)
11. 12. 2019 11:27:16
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428161
ne
verified
rating uzivatele
(22 hodnocení)
11. 12. 2019 12:00:28
no kedze nevidim jeho kod v ktorom hadze tento warning, tak neviem, ci a vobec premenna predtym existuje, neviem typ, neviem nic.. cize radsej s nicim neratam a pochybujem.. viem len to, ze premenna by mala byt countable, to je vsetko co viem..
preto isset, is_array (is_countable) ako neprestrelna prakticka oprava dotazovaneho problemu :) ..
11. 12. 2019 12:00:28
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428160
storyboard
verified
rating uzivatele
13. 12. 2019 13:46:41
To vypadá na chybu způsobenou přechodem na novou verzi PHP. Jestli neumíš programovat tak zkus přejít na verzi cca 5.2.
13. 12. 2019 13:46:41
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428159
ne
verified
rating uzivatele
(22 hodnocení)
13. 12. 2019 17:55:03
count() berie bez chyby skalarne hodnoty do verzie 7.1.x (ale pri nich vrati tusim 1, cize v skutocnosti nic nepocita ak to neni countable)
13. 12. 2019 17:55:03
https://webtrh.cz/diskuse/php-chyba-on-line/#reply1428158
Pro odpověď se přihlašte.
Přihlásit