Page 1 sur 1

FONCTIONS vs CLASS

Posté : 06 juin 2005, 15:11
par Pierre Paul
Bonjour à vous tous,
Je suis en train de me renseigner sur les class PHP, mais j'avoue ne pas trouver l'interet par rapport aux fonctions !?

Pourriez vous m'éclairer ?
J'ai lu plein de tutoriaux... mais je trouve que cela complique plus qu'autre chose... ?
Je me trompe peut être !?
C'est pour quoi je vous pose cette question.
Merci de prendre un peu de votre temps pour m'éclairer dans mes recherches.

Jacques

Posté : 06 juin 2005, 15:21
par pascaltje
classes ou fonctions...

Les fonctions font des traitements à partir des parametres fournis;

Les classes font les traitements via les méthodes, sur les parametres fournis et sur les attributs (= données) des objets.

L'avantage des classes?
- si on doit faire pleins de traitements sur toujours les mêmes données, on a une structure de données définie (= l'objet) et on travaille dessus via les méthodes.
- on ne doit pas toujours retaper les parametres de la fonction en objet: si on bosse sur les données, on initialise l'objet une seule fois puis on bosse dessus via les methodes, encore une fois.

Le gros avantage par rapport aux fonctions est donc cette structuration du code plus poussée, et le coté pratique d'utilisation.

A+

Pascal

Posté : 06 juin 2005, 15:28
par Invité
Pascal,
Merci de ta réponse.
Mais je n'arrive pas a comprendre...

Je comprend ce que tu écris... mais je ne vois pas la différence avec une fonction !?
Lorsque je cree un fonction elle peut me servire pour plein de choses.
ou alors j'en cree des différentes... Que j'appel à différents endroits...

Peut être n'ai je pas bien compris leurs roles !

Merci de ton aide

Jacques

[/code]

Posté : 06 juin 2005, 16:10
par pascaltje
disons que les classes et les fonctions permettent de faire les mêmes choses (on utilise le même mot clé pour les fonctions et pour les classes: function).

Mais...

Mais les classes permettent de "mieux" controler les données, c'est à dire de structurer les choses plus facilement.

un exemple:

pour traiter un formulaire d'inscription (les données sont: email, login, pass), il faut prévoir les actions:
- verifier les données
- enregistrer les données
- afficher les erreurs

On peut le faire via un code procédural;

On peut améliorer en mettant ça dans des fonctions:
- function verifier($_POST['email'], $_POST['login'], $_POST['pass'])
- function enregistrer($_POST['email'], $_POST['login'], $_POST['pass'])
- function pour afficher les erreurs

Avec une classe, on simplifie l'écriture:
- function recuperer($tableau) qui recupere et initialise les infos depuis le tableau $_POST par exemple
- function verifier qui verifie les données
- function erreur() qui permet d'afficher les erreurs

à l'usage, on crée un objet $inscription, on initialise via la methode recuperer puis on lance les autres methodes:
$inscription->verifier(); etc.

Si on veut changer les infos et rajouter par exemple nom et prénom dans l'inscription, on modifie uniquement la classe; avec les fonctions, il faut modifier les fonctions ET les appels de fonction.

Coder objet, c'est un état d'esprit structuré qui permet de faire évoluer le code plus simplement que les fonctions et le code procédural ( 'paté' ).

A+

Pascal qui code en objet dès que 2-3 traitements touchent les mêmes données

Posté : 06 juin 2005, 19:23
par Pierre Paul
Pascal,

Merci de ta réponse, Et excuse d'avoir mis du temps à répondre, j'ai du partir.

Peut être aurai-je besoin d'un exemple concret... car mes fonctions sont "rangées" dans une page séparée que j'appel lorsque j'en ai besoin.

Peut être au niveau du passages des "variables" et/ou autre cela devient mieux !?

MErci en tout cas

Jacques