[PHP] Condition : ça veut pô... :'(

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5184
Inscription: Jeu Oct 20, 2005 19:47

[PHP] Condition : ça veut pô... :'(

Message le Ven Aoû 10, 2007 8:10

Hello,
je comprend pas, j'ai un warning là dessus :
Code: Tout sélectionner
if ($_GET['p'] = '';) {$p = 'home';}
else {$p = $_GET['p'];}

Qu'est-ce que je fais mal ?


lupuz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 207
Inscription: Mer Mar 15, 2006 23:41

Re: [PHP] Condition : ça veut pô... :'(

Message le Ven Aoû 10, 2007 8:17

if ($_GET['p'] = '';) {$p = 'home';}
else {$p = $_GET['p'];}

>

Code: Tout sélectionner
if ($_GET['p'] == '')


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5184
Inscription: Jeu Oct 20, 2005 19:47

Message le Ven Aoû 10, 2007 8:21

Mouarff...
Merci !


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Ven Aoû 10, 2007 8:37

Utilise if(empty($_GET['p'])) c'est plus propre :)


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 5224
Inscription: Mer Nov 23, 2005 10:38

Message le Ven Aoû 10, 2007 9:00

Code: Tout sélectionner
if ((isset($_GET['p'])) && ($_GET['p'] =! ''))
{
$p = $_GET['p'];
}
else
{
$p = 'home';
}


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Ven Aoû 10, 2007 9:03

Ou plus simple :

Code: Tout sélectionner
$p = $_GET['p'] ? $_GET['p'] : 'home';


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 5224
Inscription: Mer Nov 23, 2005 10:38

Message le Ven Aoû 10, 2007 9:07

Oui mais dans le cas ou $_GET['p'] est indéfini, ca va renvoyer un notice si je ne m'abuse.


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Ven Aoû 10, 2007 9:11

C'est sûr, mais je doute du nombre d'utilisateur PHP qui codent en E_ALL volontairement, si ce n'est pour perdre du temps :) Pour enlever la notice il suffit de remplacer :

Code: Tout sélectionner
$p = !empty($_GET['p']) ? $_GET['p'] : 'home';


Beurk les isset :?


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 5224
Inscription: Mer Nov 23, 2005 10:38

Message le Ven Aoû 10, 2007 9:13

mowmow a écrit:C'est sûr, mais je doute du nombre d'utilisateur PHP qui codent en E_ALL volontairement


Bein un développeur pro qui ne taffe pas dans un environnement de ce type, et donc avec un codage propre qui ne posera aucun souci si le site est deployé sur un serveur paramétré autrement, c'est tout sauf professionnel. Ce n'est pas une question de perte de temps, c'est surtout la garantie d'un travail propre.


lupuz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 207
Inscription: Mer Mar 15, 2006 23:41

Message le Ven Aoû 10, 2007 9:21

+1 UsagiYojimbo.

Tous les codeur PHP qui on la main sur le serveur et peuvent le configurer passe en E_ALL au moins pour la phase de développement.


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Ven Aoû 10, 2007 9:30

lupuz a écrit:Tous les codeur PHP qui on la main sur le serveur et peuvent le configurer passe en E_ALL au moins pour la phase de développement.


Pas besoin d'avoir la main sur son serveur, si je me trompe pas un simple error_reporting(E_ALL); suffit.

Un développeur pro pour toujours avoir un code qui est compatible avec un environnement E_ALL, ca signifiera pas pour autant que c'est propre je suis désolé :)

Sans vouloir te vexer, un code comme celui là :

Code: Tout sélectionner
if ((isset($_GET['p'])) && ($_GET['p'] =! ''))
{
$p = $_GET['p'];
}
else
{
$p = 'home';
}


n'est pas vraiment lisible ni propre. On va pas s'amuser à vérifier si la variable est à la fois définie et non vide, un simple !empty() suffit très bien.

Un codeur pro sait très pertinement comment bien coder, l'utilisation d'un $_GET['p'] non vérifié n'implique pas qu'il code mal :) Ca permet une meilleure lisibilité au code et un gain de temps. Après personnellement je n'ai aucune notice quand je code (vérifié en E_ALL), le premier exemple que j'ai donné était quelque chose de simplifié au maximum mais que je n'utilise pas. Faire trop de lignes pour un résultat équivalent c'est mauvais ...


erestrebian
WRInaute impliqué
WRInaute impliqué
 
Messages: 394
Inscription: Ven Juin 15, 2007 12:55

Message le Ven Aoû 10, 2007 9:37

Sans vouloir vexer personne, quelqu'un qui trouverai que

Code: Tout sélectionner
if ((isset($_GET['p'])) && ($_GET['p'] != ''))
{
$p = $_GET['p'];
}
else
{
$p = 'home';
}


n'est pas lisible, n'a sans doute jamais fait de php.


Question propreté, je développe tout en E_ALL, je ne sais pas si c'est plus PROpre mais je trouve que ça l'est...

Je vote donc pour la solution isset + !=


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Ven Aoû 10, 2007 9:38

Faudra que tu m'expliques alors comment !empty($_GET['p']) est moins compréhensible qu'un ((isset($_GET['p'])) && ($_GET['p'] != '')) avec doubles paranthèses en plus :)


lupuz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 207
Inscription: Mer Mar 15, 2006 23:41

Message le Ven Aoû 10, 2007 9:41

Je ne critiquais pas tes capacité de codeur. Tu as effectivement donné un code bien optimisé.

Je faisait seulement référence au post précédent.
Et je suis d'accord pour dire qu'avant de déployer un script PHP le mieux est d'éviter toute forme d'erreur pour être tranquille lors de la mise en ligne et donc de développer en E_ALL.


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Ven Aoû 10, 2007 9:44

Totalement d'accord, après l'intérêt c'est de savoir coder de la bonne facon de manière à ne pas avoir de notices :)

[PHP] Condition : ça veut pô... :'(

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: elomb et 0 invités