Diskuze: Notice: Array to string conversion in
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zadne var_dumpy tam nemas. Treba je mas na spatnych mistech.
Error vetsinou napise cislo radku. Tam hledej chybu, nebo radky nad tim.
public function authUser($articlePermission = array('user'), $userPersmission = array('user')) {
// nejsem si jisty, ze to takhle muzes napsat. V radku, kde predavas
// parametry nemuzes naplnovat hodnotami, jakoze do pole vkladat 'user'.
// array() by tam mel vzit a pak to doresit uz podminkou na count()
Nejsou tam, jen jsem s jejich pomocí zjišťoval co do funkce vlastně teče (jejich výpis je ve druhém screenu). A data tam jdou správná. Jinak kde se zhruba chyba nachází vím. Je to i ve screenu, s tím chybovím hlášením, jedná se o funkci authUser(), v administrationControlleru(). Ale at se na to koukám jak se na to koukám tak tam chybu nevidím. Resp. s touto chybiu jsem se zatím setkal jen v případě kdy se pokusím pole vypsat pomocí echa. Proto sem to psal jsem
ještě bych dodal že to zda jsou parametry naplněné hodnotami je zcela jedno funguje to stejným způsobem, resp. to vyhazuje stejnou chybu.
Asi mas naivni predstavu, ze budu vstupni data opisovat z obrazku. To asi
radeji prenecham reakci na nekoho jineho?
Navic jsem si obrazku nevsiml,
takze dik za upozorneni.
<?php
$a = array(
0 => array(
'role_name' => 'admin',
0 => 'admin'
),
1 => array(
'role_name' => 'developer',
0 => 'developer'
)
);
$b = array(
0 => array(
'role_name' => 'developer',
0 => 'developer'
)
);
$result = (bool) array_intersect($a, $b);
var_dump($result);
?>
https://www.php.net/array_intersect
Obavam se, ze problem je prosty. Autori funkce nepocitali s rekurzi (
array(array()) ). Funkce ocekava ze hodnota pole bude string a nikoliv
array.
Jeden manik v online dokumentaci zminil, ze pouzil serialize.
<?php
$a = array(
0 => array(
'role_name' => 'admin',
0 => 'admin'
),
1 => array(
'role_name' => 'developer',
0 => 'developer'
)
);
$b = array(
0 => array(
'role_name' => 'developer',
0 => 'developer'
)
);
foreach ($a as $key=>$value) $a[$key] = serialize($value);
foreach ($b as $key=>$value) $b[$key] = serialize($value);
var_dump($a, $b);
$result = array_intersect($a, $b);
var_dump($result, (bool) $result);
?>
A take je tam spousta dalsich prikladu. Neco s rekurzemi pres cykly, jine s
array_values, json_encode, ....
To serialize vypada slibne. Veme array, prevede ji na string a pak uz porovnava
stringy. Pokud tam nemas dalsi zaludnosti, mohlo by to splnit ucel. A pokud to
nepotrebujes extra rychle.
Jo, a co je dulezite zminit, ze problem, chybu, vypisuje, dle obrazku funkce array_intersect. A podle chyby, tu jsi sem nezkopisoval celou, co by bylo asi lepsi, tak ta funkce ocekava jina data, nez ji posilas. Cili, co jsem psal, po zkouknuti dokumentace a prikladu jsem dosel k zaveru, ze to neumi zpracovat hodnotu typu array, pole uvnitr pole, array(array()).
Nejspíš si mi pohl vyřešit jiný problém. To jak se mi vypisují data do print_r(), popř do var_dump(). Tedy jako rekurze jsem již zde řešil dříve odpovědím mi bylo jen naformátování dat, někde budu mit ve wampu něco špatně nastavenýho protože když jsem to co mám nahrál na RPI server. Tak se mi chyba i přes zapnuté chybové hlášení vůbec nezobrazovala. Jen mě netrklo že by to mohlo být tím že se mi data vypisují do rekurze. Což už bude chybou přímo někde v routeru nebo v kontroleru. Proto mi to celé přestalo fungovat ve chvíli kdy jsem jsem data začal tahat z databáze. Dokud jsem je tam na zkoušku dával manuálně, tedy v kódu tak to fungovalo jak mělo.
Zobrazeno 8 zpráv z 8.