OVH Cloud OVH Cloud

Quote ou pas ?

10 réponses
Avatar
Le Fou
Salut,

Je m'embrouille avec les quotes et les variables :
Je récupère une variable (string) d'un formulaire, $Naissance, c'est une
date de naissance de la forme jj-mm-aaaa.
Je veux récupérer le jour, que dois-je écrire et pourquoi ?
1) $jour = substr($Naissance, 0, 2);
2) $jour = substr("$Naissance", 0, 2); // avec double quote

De même, après avoir récupéré le jour, le mois et l'année je veux inverser
tout ça, que dois-je écrire et pourquoi ?
1) $Naissance = $annee."-".$mois."-".$jour;
2) 1) $Naissance = "$annee"."-"."$mois"."-"."$jour";

En gros j'ai pas saisi la subtilité entre :
echo $variable;
et
echo "$variable";

Merci de m'éclairer ou de me diriger vers un article sur le net (j'ai passé
la matinée sur "PHP Débutant" et "PHP Françe" ;-)).

--
A'tchao

Le Fou
http://gloupclub.free.fr/
http://www.ffessm-cd84.com/
http://ehiller.club.fr/

10 réponses

Avatar
Olivier Miakinen
Salut,

Je m'embrouille avec les quotes et les variables :
Je récupère une variable (string) d'un formulaire, $Naissance, c'est une
date de naissance de la forme jj-mm-aaaa.
Je veux récupérer le jour, que dois-je écrire et pourquoi ?
1) $jour = substr($Naissance, 0, 2);
2) $jour = substr("$Naissance", 0, 2); // avec double quote


RTFM ?
http://www.php.net/manual/fr/language.types.string.php

Les deux donnent exactement le même résultat, alors tu fais comme tu
veux. L'essentiel est de choisir toujours l'écriture la plus lisible,
mais bien sûr ce critère est vague car il peut varier d'une personne à
une autre.

Personnellement je choisirais l'écriture la plus simple, donc
$Naissance, sauf dans le cas où la variable de départ risque d'être
un entier et que je veux forcer un transtypage vers string.

De même, après avoir récupéré le jour, le mois et l'année je veux inverser
tout ça, que dois-je écrire et pourquoi ?
1) $Naissance = $annee."-".$mois."-".$jour;
2) $Naissance = "$annee"."-"."$mois"."-"."$jour";


Là encore les deux formes sont possibles, mais j'en choisirais une
troisième :
$Naissance = "$annee-$mois-$jour";
voire une quatrième :
$Naissance = "${annee}-${mois}-${jour}";

C'est toujours le critère de lisibilité qui me guide.

En gros j'ai pas saisi la subtilité entre :
echo $variable;
et
echo "$variable";


RTFM.
http://www.php.net/manual/fr/language.types.string.php

--
(et six lignes de texte)


Tiens, ta signature n'en est pas une (il manque l'espace). Coquille ou
bug d'Outlook Express ? Par ailleurs, elle est un peu longue.

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)

Avatar
Yves_Guyane
Salut,
Bonjour.


Je m'embrouille avec les quotes et les variables :
Je récupère une variable (string) d'un formulaire, $Naissance, c'est une
date de naissance de la forme jj-mm-aaaa.
Je veux récupérer le jour, que dois-je écrire et pourquoi ?
1) $jour = substr($Naissance, 0, 2);
2) $jour = substr("$Naissance", 0, 2); // avec double quote

De même, après avoir récupéré le jour, le mois et l'année je veux inverser
tout ça, que dois-je écrire et pourquoi ?
1) $Naissance = $annee."-".$mois."-".$jour;
2) 1) $Naissance = "$annee"."-"."$mois"."-"."$jour";


Tu pourrais opportunément clarifier ton code en utilisant une fonction
du genre :
function date_us2fr($date_us){
$date_fr = explode("-",$date_us);
return "$date_fr[2]-$date_fr[1]-$date_fr[0]";
}

Yves

Avatar
Le Fou
Olivier Miakinen a écrit :

RTFM ?
http://www.php.net/manual/fr/language.types.string.php


Oui, je l'ai lu le Fucking Manual mais il n'est nulle part mentionné la
différence entre :
echo "Bonjour $Nom";
et
echo "Bonjour ".$Nom;


Les deux donnent exactement le même résultat, alors tu fais comme tu
veux. L'essentiel est de choisir toujours l'écriture la plus lisible,


C'est ce que je voulais savoir.
Merci.


Tiens, ta signature n'en est pas une (il manque l'espace). Coquille ou
bug d'Outlook Express ?


Bug d'Outlook Express ?
Bug d'OE Quotefix ?
Bug des serveurs qui suppriment les espaces finaux ?
Bug de ton lecteur qui retranscrit mal mon message ?
J'en sais rien et je m'en tape, ce n'est pas moi qui rajoute des tirets
avant ma signature et il me semble qu'on a déjà eu cette discussion,
n'est-il point ?
;-)


Par ailleurs, elle est un peu longue.


Oui, c'est vrai, elle contribue à l'engorgement des serveurs et des boites
aux lettres et au ralentissement des transmissions et donc à l'augmentation
de la facture téléphonique de ceux qui sont en rtc, j'essayerai de voir ce
que je peux faire pour palier à tout ça quand j'aurai réparé les joints de
ma douche.
Et oui, j'ai déjà RTFM :
http://www.usenet-fr.net/fur/minis-faqs/signatures.html
;-)

--
A'tchao

Le Fou
http://gloupclub.free.fr/
http://www.ffessm-cd84.com/
http://ehiller.club.fr/

Avatar
Le Fou

Tu pourrais opportunément clarifier ton code en utilisant une fonction
du genre :
function date_us2fr($date_us){
$date_fr = explode("-",$date_us);
return "$date_fr[2]-$date_fr[1]-$date_fr[0]";
}


Opportunément je note ça dans un coin.
Merci.

--
A'tchao

Le Fou
http://gloupclub.free.fr/
http://www.ffessm-cd84.com/
http://ehiller.club.fr/

Avatar
Olivier Miakinen

http://www.php.net/manual/fr/language.types.string.php


Oui, je l'ai lu le Fucking Manual mais il n'est nulle part mentionné la
différence entre :
echo "Bonjour $Nom";
et
echo "Bonjour ".$Nom;


En effet.

De même qu'il n'est nulle part mentionné la différence entre :
echo "B" . "onjour";
et :
echo "Bon" . "jour";

Ni entre :
echo "Bonjour $Nom";
et :
echo "Bonjour ${Nom}";

Pourtant, toutes ces syntaxes sont -- àmha -- expliquées de façon
suffisamment claire pour que le lecteur sache dire lui-même si elles
donnent un résultat identique ou un résultat différent.

Non ?

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)


Avatar
Florian Sinatra
*Le Fou* @ 13/02/2006 09:45 :
Olivier Miakinen a écrit :

RTFM ?
http://www.php.net/manual/fr/language.types.string.php



Oui, je l'ai lu le Fucking Manual mais il n'est nulle part mentionné la
différence entre :
echo "Bonjour $Nom";
et
echo "Bonjour ".$Nom;


La première transforme $Nom en une chaîne, si ce n'est pas déjà fait.
La seconde garde le type original de $Nom, qu'elle concatène à la chaîne
"Bonjour ".A noter que la concaténation est une opération plus longue
que le remplacement ou la simple liste de paramètres echo "Bonjour ",$Nom;
http://fr2.php.net/manual/fr/function.echo.php#AEN184108


Avatar
Olivier Miakinen

différence entre :
echo "Bonjour $Nom";
et
echo "Bonjour ".$Nom;


La première transforme $Nom en une chaîne, si ce n'est pas déjà fait.


Oui.

La seconde garde le type original de $Nom, qu'elle concatène à la chaîne
"Bonjour ".


La concaténation n'impose pas de transformer d'abord $Nom en une chaîne,
si ce n'est pas déjà fait ? On m'aurait menti ?

A noter que la concaténation est une opération plus longue
que le remplacement ou la simple liste de paramètres echo "Bonjour ",$Nom;


Ah ? D'où sors-tu cette information ? Par ailleurs, l'opération est
combien de fois plus longue ? Est-ce que mille ou dix mille opérations
de concaténation risquent d'augmenter le temps de traitement de
plusieurs secondes, par exemple ?

http://fr2.php.net/manual/fr/function.echo.php#AEN184108


Je n'y vois nulle part écrit que la concaténation serait plus longue que
la simple liste de paramètres. Tout ce que je vois, c'est un pointeur
vers une discussion à propos de la différence entre print() et echo(),
où il est dit : « There is a difference between the two, but speed-wise
it should be irrelevant which one you use. »

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)


Avatar
Florian Sinatra
*Olivier Miakinen* @ 13/02/2006 16:25 :
La concaténation n'impose pas de transformer d'abord $Nom en une chaîne,
si ce n'est pas déjà fait ? On m'aurait menti ?
Euuuh... ca m'apprendra à poster un message avant d'aller au taff !


A noter que la concaténation est une opération plus longue
que le remplacement ou la simple liste de paramètres echo "Bonjour ",$Nom;



Ah ? D'où sors-tu cette information ? Par ailleurs, l'opération est
combien de fois plus longue ? Est-ce que mille ou dix mille opérations
de concaténation risquent d'augmenter le temps de traitement de
plusieurs secondes, par exemple ?
Si je retrouvais le lien, je le donnerais volontiers ;-) Bien que la

différence
soit insignifiante, elle constitue néanmoins un argument, d'après moi :-P


Avatar
Olivier Miakinen

A noter que la concaténation est une opération plus longue
que le remplacement ou la simple liste de paramètres echo "Bonjour ",$Nom;



Si je retrouvais le lien, je le donnerais volontiers ;-) Bien que la
différence soit insignifiante, elle constitue néanmoins un argument,
d'après moi :-P


Eh bien ce n'est pas mon cas. À moins qu'il soit assuré que cela
permette de gagner plusieurs secondes, voire quelques dizaines de
secondes, je privilégierai toujours la lisibilité du code.

Si cela ne fait gagner que quelques millisecondes comme je le
soupçonne, voire si cela fait gagner une seconde ou deux sur
l'ensemble d'un script, même ceux qui sont connectés via l'ADSL
ou le câble ne verront pas la différence -- sans parler de ceux
qui sont encore en RTC.

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)



Avatar
John Gallet
Bonsoir,

Si je retrouvais le lien, je le donnerais volontiers ;-)
Un coup de google groups sur ce forum devrait ramener des choses, on en

a déjà causé des dizaines de fois.

Bien que la différence soit insignifiante,
elle constitue néanmoins un argument, d'après moi :-P
Pauvres mouches !


JG