Questions, simples je pense - PHP - Programmation
Marsh Posté le 13-11-2003 à 17:30:54
Juntao2k2 a écrit : Salut a tous, |
Marsh Posté le 13-11-2003 à 20:46:29
Bon, en fait la question est sur les chaînes délimitées par " (doubles quotes).
Il est possible de délimiter une chaîne par de simples quotes ' ou des doubles ".
La particularité des doubles, c'est que les variables sont remplacées par leurs valeurs et les caractères spéciaux aussi.
Ainsi, si $a=88 déclare une variable contenant l'entier 88, alors l'expression "$a" est une chaîne contenant les caractères 8 et 8.
En php, les variables sont typées par leur contenu et il y a donc des mécanismaes de transtypages. Ainsi, si dans une expression un nombre est attendu et qu'on fourni une chaîne, alors php essaye de la transformer en nombre.
Mais il faut faire attention avec les tableaux. Les indices de tableaux peuvent être numériques, ou alphanumérique. Ainsi, je peux écrite $tab[8] = 'Bonjour' et $tab['toto'] = 'Juntao2k2'.
Pour répondre à ta question sur $tableau["$var"] et $tableau[$var] et bien ce qui se passe, c'est que si la chaîne peut-être convertie en nombre, alors l'indice ne sera pas considéré comme une chaîne.
Si j'ai $tab['1'] = 'toto' et $tab[1] = 'tata', alors le résultat n'est pas deux entrées dans le tableau, mais une seule. Le dernier arrivé à raison.
Ca, 'test '.$var."\n" c'est possible, bien sûr, mais tu peux aussi l'écrire :
"test $var\n"
ou
'test '. "$var\n"
C'est à toi de voir.
Pour les chaînes entre " contenant des variables, il faut faire attention avec un tableau :
" test $tab[1] test" passe, mais pour
" test $tab[$i] test" il faut écrire l'expression entre accolades :
" test {$tab[$i]} test"
ou en concaténant
" test " . $tab[$i]. " test"
Pour le rmdir, je ne sait pas, la doc http://fr2.php.net/manual/fr/function.rmdir.php indique que le répertoire doit être vide, c'est bizarre...
Cà dépend peut-être de l'OS
Marsh Posté le 13-11-2003 à 22:43:18
Merci beaucoup à tous les 2 pour vos explications claires
@Simogeo
Avec le @ devant les fonctions, on peut quand même recupérer les erreurs ?
@Mara's
Je suis un puriste du simple ' depuis que j'ai appris que ca faisait bosser le parser inutilement lors de l'utilisation de " " pour afficher des chaines
Merci pour l'astuce avec les {} pour les tableaux.
Pour le rmdir, c'était sous Windows.
Si j'ai :
$Variable='Test'
$Tab["$Variable"] et $Tab[$Variable] sont pareils ?
C'est dommage que le parser n'interprète pas le \n entre ' '
Marsh Posté le 14-11-2003 à 00:32:20
Citation : Si g |
Oui, mais la première notation ne sert à rien.
Pour \n, tu peux toujours faire :
'test ' . chr(10);
Si tu supportes pas les " à ce point
Marsh Posté le 18-11-2003 à 17:22:50
Salut,
C'est pas que je ne les supportent pas, mais c'était pour comprendre pourquoi \n n'est pas pris en compte entre ' '
Merci pour tes reponses,
@+
Marsh Posté le 13-11-2003 à 17:14:10
Salut à tous,
Voici quelques questions pour lesquelles je n'ai pas de réponse ou pour lesquelles je ne suis pas sûr.
En espérant que quelqu'un pourra me repondre :
$Tableau["$Variable"] et $Tableau[$Variable] c'est pareil ? Si non, pourquoi ?
Pourquoi le \n n'est pris en compte qu'entre " " ?
Est-il possible de concaténer comme ceci : 'test '.$Variable."\n" ?
A quoi sert le @ devant les focntions/procédures ?
Pourquoi lorsque je fais je fais rmdir('./Repertoire1/Repertoire2'), il me supprime les répertoires "Repertoire1" et "Repertoire2" ?
Merci par avance pour votre aide,
@+
Message édité par Juntao2k2 le 12-08-2008 à 17:12:38