Question

Je reçois l'erreur suivante dans PHP

  

Indication undefined décalage 1: C: \ wamp \ www \ TTC ligne \ de imdbgrabber.php 36

Voici le code PHP qui provoque:

<?php

# ...

function get_match($regex, $content)  
{  
    preg_match($regex,$content,$matches);     

    return $matches[1]; // ERROR HAPPENS HERE
}

Qu'est-ce que l'erreur?

Était-ce utile?

La solution

Si preg_match n'a pas trouver une correspondance, $matches est un tableau vide. Donc, vous devriez vérifier si preg_match a trouvé une correspondance avant d'accéder à $matches[0], par exemple:

function get_match($regex,$content)
{
    if (preg_match($regex,$content,$matches)) {
        return $matches[0];
    } else {
        return null;
    }
}

Autres conseils

Comment reproduire cette erreur en PHP:

Créer un tableau vide et demander la valeur donnée clé comme ceci:

php> $foobar = array();

php> echo gettype($foobar);
array

php> echo $foobar[0];

PHP Notice:  Undefined offset: 0 in 
/usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(578) : 
eval()'d code on line 1

Qu'est-il arrivé?

Vous avez demandé un tableau pour vous donner la valeur donnée une clé qu'il ne contient pas. Il vous donnera la valeur NULL puis mettre l'erreur ci-dessus dans le journal des erreurs.

Il avait l'air de votre clé dans le tableau, et trouvé undefined.

Comment faire l'erreur ne se produise?

Demandez si la clé existe d'abord avant d'aller demander sa valeur.

php> echo array_key_exists(0, $foobar) == false;
1

Si la clé existe, puis obtenir la valeur, si elle n'existe pas, pas besoin d'interroger pour sa valeur.

Undefined offset erreur PHP est comme ArrayIndexOutOfBoundException en Java.

exemple:

<?php
$arr=array('Hello','world');//(0=>Hello,1=>world)
echo $arr[2];
?>

erreur: Non défini décalage 2

Cela signifie que vous faites référence à une clé de tableau qui n'existe pas. "Décalage" se réfère à la clé de nombre entier d'un réseau numérique, et « index » se réfère à la clé de chaîne d'un tableau associatif.

signifie Undefined offset il y a une clé de tableau vide par exemple:

$a = array('Felix','Jon','Java');

// This will result in an "Undefined offset" because the size of the array
// is three (3), thus, 0,1,2 without 3
echo $a[3];

Vous pouvez résoudre le problème en utilisant une boucle (en):

$i = 0;
while ($row = mysqli_fetch_assoc($result)) {
    // Increase count by 1, thus, $i=1
    $i++;

    $groupname[$i] = base64_decode(base64_decode($row['groupname']));

    // Set the first position of the array to null or empty
    $groupname[0] = "";
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top