[PHP] Uninitialized string offset*

Pagina: 1
Acties:
  • 207 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 63638

Topicstarter
Hallo,

Ik zit met een probleem, ik programmeer graag met error reporting op E_ALL, zodat ik dan goed zicht heb op alle fouten en slordigheidjes

Maar nou krijg ik de volgende melding:

PHP:
1
Notice: Uninitialized string offset: 0 in /etc/htdocs/h&e/includes/functions/functions.inc.php on line 35


en de array waar hij deze melding op geeft:

PHP:
1
2
3
4
Array
(
    [0] => @@TITLE@@
)


dus er is wel degelijk een offset 0 in deze array, maar hij geeft er toch een notice op ...

het stukje code:

PHP:
32
33
34
35
36
37
    for ($x = 0; $x < count($varnames); $x++) {

        // Assign all vars to their values
        $template->assign ($varnames[$x],
                $varvalues[$x]);
    }


heeft iemand enig idee hoe dit op te lossen??

grtz

edit: kan modje titel wijzigen? het gaat natuurlijk om [PHP]

[ Voor 6% gewijzigd door Anoniem: 63638 op 05-03-2004 18:56 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 16-05 11:46

Bosmonster

*zucht*

@@TITLE@@

Wat is dit precies voor een notatie?

Acties:
  • 0 Henk 'm!

Anoniem: 100466

Anoniem: 63638 schreef op 05 maart 2004 @ 18:55:

PHP:
1
2
3
4
Array
(
    [0] => @@TITLE@@
)


dus er is wel degelijk een offset 0 in deze array, maar hij geeft er toch een notice op ...
ik zie hier maar 1 array... en in je functie gebruik je er 2. Is het dan niet mogelijk dat die $varvalues per ongeluk geen index 0 heeft?

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 16-05 11:46

Bosmonster

*zucht*

ow.. nu snap ik hem.. dat is geen code, maar een print_r... teveel bier vrijdagmiddag :P

Verder zegt ie niet dat de index niet bestaat van een array, maar zegt ie dat je een string-index probeert op te vragen ergens die niet bestaat. Oftewel je behandelt een string ergens als array.

$bla = 'hallo';
echo $bla[6];

zou deze melding geven bijvoorbeeld.

[ Voor 5% gewijzigd door Bosmonster op 06-03-2004 10:19 ]


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 30-04 22:14
Als je nou
PHP:
1
2
3
4
5
for ($x = 0; $x < count($varnames); $x++) {
        // Assign all vars to their values 
        $template->assign ($varnames[$x], 
                $varvalues[$x]); 
}

vervangt voor
PHP:
1
2
3
4
5
6
7
$x = 0;
foreach ($varnames as $v) {
  $x++;
        // Assign all vars to their values 
        $template->assign ($v, 
                $varvalues[$x]); 
}

Kun je geen foute arrays meer hebben. Maar dat geld alleen voor de array $varnames; is de array $varvalues ok? (aka, even lang?)

Acties:
  • 0 Henk 'm!

Anoniem: 63638

Topicstarter
het gaat om een template systeem, in de array $varnames staan alle namen die in mijn template voorkomen, in de array $varvalues staan de respectievelijke waarden voor de namen, dus $varnames heeft evenveel entries als $varvalues.

ik zal dat foreach systeem eens even gaan proberen, misschien dat dat de oplossing mag bieden !!

grtz

Acties:
  • 0 Henk 'm!

  • Tom-Eric
  • Registratie: Oktober 2001
  • Laatst online: 25-03 09:11
Let wel op, foreach maakt kopieen van objecten en geen references.
ik gebruik persoonlijk altijd het volgende:
PHP:
1
2
3
4
5
6
$keys = array_keys($array);
$count = count($keys);
for($i = 0; $i < $count; $i++)
{
    $value =& $array[$keys[$i]];
}

[ Voor 59% gewijzigd door Tom-Eric op 06-03-2004 16:02 ]

i76 | Webdesignersgids | Online Gitaarlessen & Muziekwinkels


Acties:
  • 0 Henk 'm!

Anoniem: 63638

Topicstarter
bij het gebruik van array_keys(), liep ik tegen het probleem aan dat php de variabele niet als een array ziet, dus ik gebruik nu settype() en gewoon de for-loop, en nu gaat alles goed!

de variabelen worden hier gebruikt in een functie is het normaal dat deze dan niet automatisch als array herkend worden??
Pagina: 1