type de retour de str_split()

r3
Invité n'ayant pas de compte PHPfrance

30 juin 2010, 11:38

Bonjour
j'ai un petit souci avec ma fonction str_split(). Les valeurs de retour ne sont par reconnues:

Code : Tout sélectionner

$pass= 'bbuyyy'; $arrPassw = str_split($pass); if ($arrPass{0}=='b' && $arrPass{1}=='b') //rajouter une table passw avec date && { echo "checkpass bon passw "; return true; } else echo "checkpass bad passw "; print_r($arrPassw); return false;
ca me donne la reponse suivante:
checkpass bad passw Array ( [0] => b [1] => b [2] => u [3] => y [4] => y [5] => y )
alors qu'il devrait etre valide..

merci de votre aide

ViPHP
ViPHP | 3607 Messages

30 juin 2010, 12:21

pour atteindre un élément de tableau en php on utilise les crochets, et pas les accolades ;)

Petit nouveau ! | 2 Messages

30 juin 2010, 18:23

oui en effet, j'ai trouvé les accolades sur un autre site et ca m'avait aussi étonné.. J'ai essayé et ca ne pose pas de problème à php :|
Bref, avec les crochets le résultat est le même :?

une autre idée ?

ViPHP
ViPHP | 3607 Messages

30 juin 2010, 20:22

Que donne ce code:
<?php
$pass= 'bbuyyy';
$arrPassw = str_split($pass);
var_dump(
  $arrPassw,
  $arrPass[0],
  $arrPass[1],
  $arrPass[0]=='b',
  $arrPass[1]=='b',
  $arrPass[0]=='b' && $arrPass[1]=='b'
);
Et éventuellement, que cherches-tu à faire concrètement, car il y a peut-être une meilleure façon de faire ;)

EDIT: ahah c'est en relisant ma réponse que j'ai vu la faute.... :)
Il y a une faute de frappe qui traine dans ton code ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 juin 2010, 22:21

Effectivement, il manque un petit quelque chose pour que ton else ne porte pas que sur l'instruction suivante mais sur un bloc d'instructions ;)

Par contre je découvre la fonction str_split() et j'en vois pas bien l'intérêt ? Il me semblait que PHP traitait nativement toutes les chaines comme des tableaux ? ou alors ça a changé avec php 5 ?
$var = "hello world";
echo $var[0]; // affiche "h"
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 3607 Messages

30 juin 2010, 22:39

Bien vu l'aveugle ;) !
Donc on à affaire à deux étourderies!
un oubli que vient de faire remarquer Ryle, et toujours une faute de frappe sur les noms de variables ;)

ViPHP
ViPHP | 5462 Messages

30 juin 2010, 23:37

Effectivement, il manque un petit quelque chose pour que ton else ne porte pas que sur l'instruction suivante mais sur un bloc d'instructions ;)

Par contre je découvre la fonction str_split() et j'en vois pas bien l'intérêt ? Il me semblait que PHP traitait nativement toutes les chaines comme des tableaux ? ou alors ça a changé avec php 5 ?
$var = "hello world";
echo $var[0]; // affiche "h"
ouai mais tu peux pas utiliser une chaine en argument de type tableau

par exemple
$str = 'test';
array_reverse($str);
//Warning: array_reverse() expects parameter 1 to be array, string given

$str = 'test';
$arr = array_reverse(str_split($str));
echo implode($arr);

//tset

Petit nouveau ! | 2 Messages

01 juil. 2010, 13:28

Non seulement je sais pas tapper mais je suis aveugle :lol:
merci pour vos instrucives réponses, j'aime bien le var_dump, je le connaissais pas celui-là :)