Notice: Undefined offset: 0 in

Fermé
Ronii28 - 7 févr. 2012 à 11:18
jordane45 Messages postés 38134 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 avril 2024 - 26 juin 2016 à 23:59
Bonjour a tous,

Voilà je viens posté sur un forum ce que je fais peux car je suis à bout de nerfs !
Cela fait 3 jours que suis bloqué avec un undefined offset et que je n'arrive pas à m'en débarrasser (je progrqmme en POO).

Notice: Undefined offset: 0 in C:\wamp\www\***\Lib\Collection.class.php on line 38

Ma collection contient ceci vers la ligne 38 :

public function GetElement($index)
    {
    	return $this->_array[$index -1]; //Ligne  38
    }



Mon tableau commence bien à 1 pourtant :

 public function Collection()
    {

    	$this->_array=array();
    	$this->_compteur=0;
    }

    public function Add($obj)
    {
    	$this->_array[$this->_compteur]=$obj;
		$this->_compteur++;

    }

	public function Affiche()
	{
		var_dump ($this->_array);
	}

    public function Remove($obj)
    {
    	$this->_array[]=$obj;
    	$this->_compteur++;

    }


Voilà, j'aimerais avoir votre aide car c'est insupportable de ne as pouvoir résoudre une erreur que je pense n'est pas si compliqué mais je dois passer à côté..
Si je dois vous fournir quelques indications en plus : je suis présent.

Merci de votre aide,

Roni.

5 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
7 févr. 2012 à 12:29
si index est trop petit (0) ou trop grand, il y a une erreur. Test la valeur d'index avant de le passer dans le tableau.
0
En faisant quoi ? Var_dump ($index) ?
Et ce var_dump je le fais ou ?
0
Déjà, dans Remove, c'est compteur-- au lieu de ++.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
7 févr. 2012 à 14:19
public function GetElement($index)
    {
    	return $this->_array[$index -1]; //Ligne  38
    }
Ton erreur a lieu là, c'est là qu'il faut modifier
public function GetElement($index)
    {
        if( $index<1 || $index>compteur) {exit();}//  Gros problème
    	return $this->_array[$index -1]; //Ligne  38
    }
0
Saloua_ELKHOUFAIRI Messages postés 1 Date d'inscription dimanche 26 juin 2016 Statut Membre Dernière intervention 26 juin 2016
26 juin 2016 à 19:58
Bonjour,

Meme si c'est trop tard mais ça pourra aider d'autres personnes faisant face au meme problème:

veuillez modifier la ligne suivante:

de "error_reporting = E_ALL " à "error_reporting = E_ALL & ~E_NOTICE"

dans le fichier php.ini
0
jordane45 Messages postés 38134 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 avril 2024 4 646 > Saloua_ELKHOUFAIRI Messages postés 1 Date d'inscription dimanche 26 juin 2016 Statut Membre Dernière intervention 26 juin 2016
26 juin 2016 à 23:59
Bonjour,

Comme dit le père (que je salue au passage ^^ )
Ne surtout pas faire ça !

Par contre ... on peut procéder ainsi : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
0
Utilisateur anonyme
26 juin 2016 à 23:56
Bonjour

Il ne faut surtout pas faire cette modification.
Elle ne corrige pas l'erreur, elle cache juste le message. L'erreur est donc toujours là, et il y en a peut-être d'autres parce que ta "correction" consiste à fermer les yeux pour ne plus voir le problème.
C'est la pire chose à faire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci pour votre aide sur toi Char Snipeur mais si j'ajoute ce que tu viens de mettre, je retrouve avec cette erreur :

Notice: Use of undefined constant _compteur - assumed '_compteur'
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
8 févr. 2012 à 08:22
ba, oui, à toi de faire preuve d'un peut 'intelligence et de corriger ce que j'écris. j'ai pas fais gaffe que ta variable avait un caractère souligné juste avant.
0