Maison >développement back-end >tutoriel php >Piège 1 dans lequel PHP peut tomber

Piège 1 dans lequel PHP peut tomber

小云云
小云云original
2018-03-19 14:57:531246parcourir

Cet article partage principalement avec vous les pièges dans lesquels PHP peut tomber. Nous partageons la réponse avec vous à travers un petit exemple, en espérant aider tout le monde.

On m'a demandé aujourd'hui :

$var = 'test';
if (isset($var['somekey']))
{
    echo 'reach here!!!';
}

Est-ce que le message "atteindra ici !!!" sera affiché ? ---Bien sûr que non. J'ai répondu sans réfléchir.

Effectivement, je suis tombée dans un piège ! Ce sera une sortie ! Si vous n’êtes pas tombé dans le piège, félicitations, vous n’avez pas besoin de baisser les yeux.

Maintenant, analysons-le. Maintenant que isset est là, quelle est la valeur ? Imprimons-le :

var_dump($var['somekey']);
//=>output:  string(1) "t"

est le caractère 't', qui est le premier caractère de $var L'avez-vous compris ici ?

Parce que la variable $var est une chaîne, si vous avez appris le langage C, vous saurez qu'il s'agit d'un tableau de type char, nous pouvons donc utiliser $var[0] $var[1] $var [$i]..Obtenir le caractère $i+1 de $var. Alors pourquoi « somekey » n’a-t-il obtenu que le premier caractère ? En effet, PHP effectue ici une conversion de type implicite, convertissant ici la chaîne en type int. Si vous avez essayé la fonction intval('somekey'), vous saurez que le résultat est 0, donc $var['somekey']Enfin c'est $var[0]. Finalement, je l'ai compris.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn