| Autor | Zpráva | ||
|---|---|---|---|
| qteck Profil |
#1 · Zasláno: 1. 6. 2015, 17:22:24
čus,
tenhle script mi generuje undefined offsets a nevím jak bych to měl ošetřit. Mohl by mě někdo nakopnout správný směrem? Díky. function makeItHash ($tag)
{
$x = array(); //pro potlačení php notice undefined variable
foreach ($tag as $key1 => $val1)
{
$e = explode(' ', $val1);
foreach ($e AS $val)
{
$x[$key1] .= ucfirst($val); //undefined offsets
}
}
return $x;
} |
||
| Joker Profil |
#2 · Zasláno: 1. 6. 2015, 17:23:38
qteck:
Tak pokud $x = array();, tj. prázdné pole, logicky nebude existovat $x[$key1].
|
||
| qteck Profil |
#3 · Zasláno: 1. 6. 2015, 17:37:33 · Upravil/a: qteck
jasně, ale jakým způsobem to teda přepsat?
já tuhle pasážpovažuju za definici $x[$key1] .= ucfirst($val); ale si to tak není. Co s tím teda můžu dělat? oh, jasně otestoval jsem to: function makeItHash ($tag)
{
$x = array();
foreach ($tag as $key1 => $val1)
{
$e = explode(' ', $val1);
foreach ($e AS $val)
{
if(!isset($x[$key1]))
{
$x[$key1] = ucfirst($val);
} else
{
$x[$key1] .= ucfirst($val);
}
}
}
return $x;
}Díky |
||
| Joker Profil |
#4 · Zasláno: 1. 6. 2015, 18:42:00
qteck:
Tak nějak, nebo se to rozhodování může udělat ještě před vnitřním cyklem: function makeItHash ($tag)
{
$x = array();
foreach ($tag as $key1 => $val1)
{
$e = explode(' ', $val1);
if (!isset($x[$key1])) {
$x[$key1] = "";
}
foreach ($e AS $val)
{
$x[$key1] .= ucfirst($val);
}
}
return $x;
} |
||
| Alphard Profil |
Nebo rovnou
$x[$key1] = implode('', array_map('ucfirst', explode(' ', $tagString)));Joker [#4]: Tam ta podmínka na 7. řádku je přebytečná. $key1 musí být unikátní, takže lze řetězec inicializovat vždy.
|
||
| Joker Profil |
#6 · Zasláno: 1. 6. 2015, 20:28:14
Alphard:
To je pravda. Já to z nějakého důvodu celou dobu beru tak, že to pole $x může už mít nějaký předchozí obsah. |
||
| qteck Profil |
#7 · Zasláno: 2. 6. 2015, 09:26:43
Díky kluci.
a tenhle záps je vážně cool :) $x[$key1] = implode('', array_map('ucfirst', explode(' ', $tagString))); |
||
|
Časová prodleva: 10 let
|
|||
0