Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

j'apprends php 1

41 réponses
Avatar
Olivier Masson
Bonjour,

Dans le cadre de ma décision "j'apprends à coder proprement et
efficacement", j'ai 2.5 questions à vous poser (ça ne fait que commencer
:)).

Tout d'abord, pourquoi ne peut-on pas faire :
$a = (explode("?",$string))[0];
puisque explode renvoie un array ?

Ensuite, pourquoi ceci ne fonctionne pas :
array_flip($a);
ni même :
array_flip(&$a);
On est donc forcé d'écrire :
$a = array_flip($a);
?

La demi-question : Est-il (vraiment) utile de faire un unset dès que
l'on a plus besoin d'une variable si cette variable ne contient pas des
tonnes de données ?

Petite anecdote : hier en cherchant si qq un avait déjà codé ce que je
voulais, je suis tombé sur une solution.
Elle est publiée sur le site d'une agence web. Bon.
Cette solution fait 50 lignes, qui ressemblent à s'y méprendre à du
visualbasic codé par un enfant de 10ans.
Voyant ça, j'ai cherché de mon côté pour, au final, arriver à un
meilleur résultat en... 5 lignes (et 15 minutes de recherche dans le doc
php) !
Jusque là, vous me direz, c'est commun dans le monde du web. Sauf que
cette agence à créer son CMS en PHP :) (et là, c'est le drame).

Je ne veux pas devenir comme ça ! Alors je pose des questions :)
Et comme d'hab, c'est sympa de votre part d'y répondre.

1 réponse

1 2 3 4 5
Avatar
Mihamina Rakotomandimby
11/11/2009 01:26 AM, Bruno Desthuilliers:
Si je puis me permettre de répondre, en admettant que PHP soit ce
genre de langage, au lieu d'utiliser la fonction "in_array()" [...]
<?php
// On crée un objet de type "Array", d'où l'opérateur "new".
$tableau = new Array("tata", "momo", "lili");
// On teste l'existence d'un élément dans le tableau.
$test = $tableau->in_array("riri"); // donne FALSE dans l'ex.
?>



Ou, pour aborder les choses à un plus haut niveau, on pourrait envisager
un operateur 'in' qui fonctionne sur tout objet implémentant l'interface
approprié, ce qui permettrait de ne pas se soucier du type exact de la
"collection" utilisée (tableau ou autre). De même, on pourrait envisager
une implémentation de foreach() qui permette d'itérer sur tout objet
implémentant l'interface adéquate - idem, on gagne beaucoup en généricité.

Un des objectifs de l'OO est de découpler l'interface de
l'implémentation. D'une part pour faciliter la maintenance
(encapsulation), et d'autre part pour accroitre la généricité
(polymorphisme).




Hum...

- Typage faible?
- Polymorphisme?

Si on pouvait en discuter de maniere générale sur le bon groupe, je suis partant.
Je propose et applique un suivi sur fr.comp.lang.general

En effet, ce dont parle Bruno, là, releve-t-il de la notion de typage faible ou bien
du polymorphisme?

Pouvoir itérer indiférement sur:
- une chaine de caractère
- un tuple
- une liste
- un tableau
- ...

Ceci avec la meme fonction (puisqu'il parle de meme interface)?
Tout s'embrouille dans mon esprit...

--
Administration système
Recherche & Développement
GulfSat/Blueline, Madagascar
Tel: +261 33 11 207 36
1 2 3 4 5