PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.php > [Debutant] Comparaison
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
[Debutant] Comparaison

Réponse
 
LinkBack Outils de la discussion
Vieux 24/09/2007, 19h34   #9
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Debutant] Comparaison

Le 24/09/2007 19:49, Denis Beauregard a écrit :
>
> En plus du in_array proposé, il y a aussi les strstr et stristr
> http://ca.php.net/manual/fr/function.strstr.php
>
> if (!stristr(';France;Allemagne;Italie;',$i))


Pour que le test soit fait dans le même sens que celui qu'utilisait
Pascale, il ne faut pas le « ! » du début.

Et pour prévenir le cas où cette technique serait réutilisée avec des
chaînes pouvant commencer par "0", je ferais même :
if (stristr(';France;Allemagne;Italie;', $i) !== FALSE)

> Un avantage, c'est de trouver un mot incomplet. Par exemple, cela
> trouverait allemagn. C'est aussi un inconvénient pour la même raison.


Oui. Par exemple si on veut chercher "Niger" dans une liste qui contient
"Nigeria" sans accent. Cela dit, on peut adapter la technique comme ceci
pour ne trouver que les mots complets :

if (stristr(';France;Allemagne;Italie;', ";$i;") !== FALSE)

L'inconvénient principal de cette méthode, à mon humble avis, est que le
code en devient de moins en moins lisible. Personnellement, le switch
aurait ma préférence.
  Réponse avec citation
Vieux 25/09/2007, 08h40   #10
Pascale
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Debutant] Comparaison

John GALLET <john.gallet@wanadoo.fr> écrivait
news:Pine.LNX.4.44.0709241943570.25523-100000@ns2261.ovh.net:

> S'il y a bien une caractéristique donnant un avantage énorme de PHP
> sur d'autres plateformes, c'est la richesse de ses API natives, en
> particulier les fonctions de gestion de strings et de tableaux. Il est
> rare qu'on ne dispose pas directement de ce dont on a besoin, au pire
> en combinant deux ou trois fonctions existantes.


Exact !

> C'est à double tranchant, car il y a en a tellement qu'on s'y perd. Y
> compris des trucs inutilement compliqués comme par exemple
> array_walk(), qui permet de passer 5 bonnes minutes à se gratter le
> neurone devant le man en ne comprenant strictement rien à ce qu'on lit
> alors qu'un bête foreach() fait aussi bien le boulot.


Et oui ! Je me sens comme un apprenti inexpérimenté qui aurait à sa
disposition tous les outils d'un maître-artisan, et embarrassée de savoir
lequel ira le mieux pour ce que je veux faire... et quelquefois je trouve
facilement dans les exemples comment faire des trucs compliqués... mais pas
le truc simple que je cherche! (-:

> Là aussi, in_array() peut dans certains cas être remplacé par in
> array_key_exists() n'est qu'un bon vieux if(isset(...)) si on joue pas
> avec le NULL de php. Et si on a envie de se re-demander si php est ou
> non un langage typé, on peut jouer avec array_search().


Gloups... un langage typé, ça veut dire quoi?

--
Pascale
  Réponse avec citation
Vieux 25/09/2007, 08h40   #11
Pascale
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Debutant] Comparaison

Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid>
écrivait news:p2tff312p9qu9snb17t1hq27403el44hur@4ax.com:

> En plus du in_array proposé, il y a aussi les strstr et stristr
> http://ca.php.net/manual/fr/function.strstr.php
>
> if (!stristr(';France;Allemagne;Italie;',$i))
>
> Un avantage, c'est de trouver un mot incomplet. Par exemple, cela
> trouverait allemagn. C'est aussi un inconvénient pour la même raison.
> Pour ce qui est de la vitesse, je pense que la différence est trop
> petite pour qu'on en tienne compte. Par contre, si la liste est très
> longue, le in_array serait préférable.
>
> À vous de voir.


J'avais pensé à un truc un peu dans ce genre: concaténer mes noms de pays
pour en faire un seul champ et rechercher ensuite si je retrouver ma chaîne
de caractères à l'intérieur. Mais j'ai eu peur de problèmes tels que ceux
que tu décris, même si ma liste de pays actuelle ne présente pas
d'ambiguïté.

--
Pascale
  Réponse avec citation
Vieux 26/09/2007, 17h19   #12
Olivier Masson
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Debutant] Comparaison

John GALLET a écrit :

> C'est à double tranchant, car il y a en a tellement qu'on s'y perd. Y
> compris des trucs inutilement compliqués comme par exemple array_walk(),
> qui permet de passer 5 bonnes minutes à se gratter le neurone devant le
> man en ne comprenant strictement rien à ce qu'on lit alors qu'un bête
> foreach() fait aussi bien le boulot.
>


C'est même plus pernicieux que ça car qd je trouve une fonction qui
ressemble à une autre, je me demande si je ne fais pas une grosse erreur
(de compréhension ou d'optimisation) en utilisant celle que je connais.
  Réponse avec citation
Vieux 26/09/2007, 21h55   #13
Denis Beauregard
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Debutant] Comparaison

Le 25 Sep 2007 07:40:04 GMT, Pascale <chaton.tigre+spam@alussinan.org>
écrivait dans fr.comp.lang.php:

>Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid>
>écrivait news:p2tff312p9qu9snb17t1hq27403el44hur@4ax.com:
>
>> En plus du in_array proposé, il y a aussi les strstr et stristr
>> http://ca.php.net/manual/fr/function.strstr.php
>>
>> if (!stristr(';France;Allemagne;Italie;',$i))
>>
>> Un avantage, c'est de trouver un mot incomplet. Par exemple, cela
>> trouverait allemagn. C'est aussi un inconvénient pour la même raison.
>> Pour ce qui est de la vitesse, je pense que la différence est trop
>> petite pour qu'on en tienne compte. Par contre, si la liste est très
>> longue, le in_array serait préférable.
>>
>> À vous de voir.

>
>J'avais pensé à un truc un peu dans ce genre: concaténer mes noms de pays
>pour en faire un seul champ et rechercher ensuite si je retrouver ma chaîne
>de caractères à l'intérieur. Mais j'ai eu peur de problèmes tels que ceux
>que tu décris, même si ma liste de pays actuelle ne présente pas
>d'ambiguïté.


Mon utilisation prévue est sans doute différente de la tienne.
Ce que j'avais en tête, c'est pour une liste de liens dans une
base de données, chaque lien appartenant à plusieurs catégories.

Avec mon truc, je pourrais par exemple avoir sur une ligne

;arseneaux;arsenault;arsenaud;arseno;

et trouver le lien avec plusieurs mots clés différents. Et ici, c'est
sans importance que la chaine soit trouvée en partie.

Pour une application de filtrage à partir d'une liste d'endroits, cela
est à double tranchant. D'un côté, à partir de Saint-Denis, je
trouverais Saint-Denis-sur-Richelieu, Saint-Denis de la Réunion,
Saint-Denis-le-Vêtu, Saint-Denis-de-L'Houmée com Beurlay
(Saint-Denis), etc. Donc, pour un moteur de recherche, c'est
acceptable et même préférable. D'un autre côté, à partir de
Paul*Champagne, je trouverais aussi Saint-Paul, Champagne mais
aussi ;Saint-Paul;Saint-Martin;Champagne sur Mer;

C'est une question d'utilisation que l'on veut en faire.

Une application réelle contiendrait par exemple
;F01;F26;F38; Pour France, départements 01, 26 et 38.


Denis
  Réponse avec citation
Vieux 27/09/2007, 20h48   #14
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Debutant] Comparaison

Pascale a écrit :
(snip)
> Gloups... un langage typé, ça veut dire quoi ?


Les experts ne sont pas encore parvenus à une définition définitive et
univoque à ce jour. Mais tout le monde ou presque s'accorde à considérer
qu'un langage qui considère que '1' == 1 n'a pas vraiment un typage fort
!-)
  Réponse avec citation
Vieux 03/10/2007, 13h14   #15
Pascale
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Debutant] Comparaison

Olivier Masson <sisemen@laposte.net> écrivait
news:46fa3f4a$0$32751$426a34cc@news.free.fr:

> C'est même plus pernicieux que ça car qd je trouve une fonction qui
> ressemble à une autre, je me demande si je ne fais pas une grosse erreur
> (de compréhension ou d'optimisation) en utilisant celle que je connais.


Aaaaaah... je me sens moins seule ! (-:

--
Pascale
  Réponse avec citation
Vieux 03/10/2007, 13h14   #16
Pascale
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [Debutant] Comparaison

Bruno Desthuilliers <bdesth.quelquechose@free.quelquepart.fr> écrivait
news:46fc03b7$0$21518$426a74cc@news.free.fr:

> Les experts ne sont pas encore parvenus à une définition définitive et
> univoque à ce jour. Mais tout le monde ou presque s'accorde à considérer
> qu'un langage qui considère que '1' == 1 n'a pas vraiment un typage fort
> !-)


Arf© (o;

--
Pascale
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 12h48.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,25745 seconds with 16 queries