Tableau de vérifier undefined offset php
Je vais essayer de l'expliquer.
j'ai un array
:
$arrayTime = array(0=>"07",1=>"09", 3=>"13", 4=>"15", 5=>"17", 6=>"19");
Ici, vous pouvez voir qui n'est pas défini offset 2
et maintenant, j'ai besoin for
mon array
et sur offset 2
pousser le numéro 0(par exemple)
J'ai essayé d'utiliser ceci:
if($arrayTime[$i]==""){
$arrayTime[$i]=0;
}
Oui, il fonctionne, mais de 50 à 50 array
ressemble à ceci:
$arrayTime = array(0=>"07",1=>"09", 3=>"13", 4=>"15", 5=>"17", 6=>"19",2=>"0");
mais sur la ligne où se trouve le if
il renvoie une erreur:
Notice: Undefined offset: 2 in C:\wamp\www\xxx.php sur la ligne 10
J'ai donc besoin même résultat, mais sans erreur.
Merci pour votre aide à tous 🙂
Il ne jette pas une erreur, c'est de remarquer que vous essayez d'accéder à un undefined index, pour vous avertir au sujet d'un possible bug dans votre code. Habituellement, cela vient dans un paquet, vous essayer de faire un script de quelque chose qui est de "mauvaise pratique". Le fait que vous essayez de résoudre, c'est bon. Au lieu de
Ou bien merci, si vous en voulez point, répondre à ma question. Je vais le marquer comme étant correcte.
$arrayTime[$i]==""
ne empty($arrayTime[$i])
Ou bien merci, si vous en voulez point, répondre à ma question. Je vais le marquer comme étant correcte.
OriginalL'auteur Dolis | 2017-03-27
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, il ne jette pas une erreur. Il vous donne un avertissement au sujet d'un possible bug dans votre code.
Cette tente de accès
$arrayTime[$i]
pour récupérer une valeur à comparer à l'encontre de votre chaîne vide.La tentative de lire et utilisation un non-existant index de tableau pour obtenir une valeur de comparaison est la raison pour laquelle il jette le message d'avertissement comme c'est généralement inattendu. Lorsque la clé n'existe pas
null
est utilisé à la place et le code continue de s'exécuter.Parce que vous comparez par rapport à une chaîne vide
""
, votre réponse seraitempty()
:Cela signifie que vous vous attendez à une clé n'existe pas, et en même temps de vous la vérification de la valeur pour le vide. Voir la type tableau de comparaison pour voir ce qui est et ce qui n'est pas considéré comme "vide".
Les mêmes règles s'appliquent à
isset()
etis_null()
, il l'habitude de jeter de l'avis si la clé n'existe pas. Afin de choisir la fonction qui répond le mieux à vos besoins.Gardez à l'esprit que par l'utilisation de ces fonctions vous êtes à la vérification de la valeur et pas si le clé existe dans le tableau. Vous pouvez utiliser
array_key_exists()
.OriginalL'auteur Xorifelse
pour ajouter des zéros à votre non-défini des indices sans se faire un Avis, vous devez évaluer si l'indice de comparer existe, donc au lieu de comparer directement essayer la vérification de l'existence de l'indice d'abord par l'aide de isset méthode, vérifier si la variable est définie et n'est pas NULLE.
De sorte que votre code pour valider devrait ressembler à ceci:
Espère que cela fonctionne pour vous.
isset()
serait valable pourundefined
ounull
. Depuis l'OP est de comparer par rapport à""
,isset()
renvoie true, alors que la validité de la réponse serait!isset()
ouempty()
, oùempty()
est plus dynamique sur ce est vide.Les grands esprits se rencontrent!
Mec @RiggsFolly vous avez raison, de l'édition!
empty($arrayTime[$i]) ){ $arrayTime[$i]=0; } pour remplacer un index définies avec une valeur false trop pas seulement le non définis comme
!isset()
OriginalL'auteur Pabhoz