IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pourquoi cette fonction fonctionne-t'elle ?


Sujet :

Langage PHP

  1. #1
    Inactif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 37
    Points : 13
    Points
    13
    Par défaut Pourquoi cette fonction fonctionne-t'elle ?
    Bonjour,

    J'apprends à créer des fonctions personnalisées. J'en ai créé une et le problème, c'est qu'elle... Fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function ecrire($nom) // 
    {
    echo'Salut '.$nom.'';
    }
     
    $splotch="Eric"  ;
    ecrire($splotch);
    Ceci affiche donc "Salut Eric".

    Oui mais voilà, comment se fait-il que ça fonctionne, alors que ladite fonction a pour paramètre une variable appelée $nom, tandis que l'affichage se fait à partir d'une variable appelée différemment, soit $splotch... ?
    Je ne comprends pas cela.


    Merci d'avance pour votre éclairage.

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Ta fonction à ici un paramètre nommé nom, tu aurais très bien pu mettre toto ou machinChose.
    Cela te permet de t'y retrouver pour ensuite les réutiliser à l'intérieur de ta fonction.

    Ensuite lorsque tu fais:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $splotch="Eric"  ;
    ecrire($splotch);

    Tu peux aussi faire:


    Tant que ta fonction reçoit un paramètre correspondant à celui que tu demande ça fonctionnera

    Tu peux regarder ce tutoriel il devrait t'apporter un peu plus d'informations

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Points : 1 385
    Points
    1 385
    Par défaut
    Bonjour,

    c'est le principe de base de fonctionnement d'une fonction.

    L'appel "ecrire($splotch)" assigne la valeur de $splotch à $nom. $nom n'est utilisé (et utilisable) que dans le corps de la fonction. De même, $splotch n'est utilisé (et utilisable) que dans le programme, en dehors des fonctions (sauf s'il est déclaré en global).


    Remarque : " .'' " n'est pas nécessaire.

  4. #4
    Inactif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 37
    Points : 13
    Points
    13
    Par défaut
    Bonjour, merci pour vos réponses.

    Je vais lire le tutoriel. Deux questions déjà, pour rebondir sur vos messages :

    Citation Envoyé par Kreepz
    Tant que ta fonction reçoit un paramètre correspondant à celui que tu demande ça fonctionnera
    Mais justement, le paramètre que je demande n'est-il pas "$nom" ? Comment établis-tu ladite correspondance ?

    Citation Envoyé par Christophe P.
    L'appel "ecrire($splotch)" assigne la valeur de $splotch à $nom. $nom n'est utilisé (et utilisable) que dans le corps de la fonction.
    Donc en fait, la fonction ne décrit qu'une structure d'action, sans tenir compte des noms des paramètres. Ceux-ci n'y figurent que pour la forme, parce qu'ils font partie de la structure, mais peu importe le fond, en l'occurrence leur nom ?

    En clair, je crée une fonction avec un nom de paramètre quelconque uniquement afin de stipuler à la fonction qu'il y a un paramètre (sans quoi ça plante ?), et ensuite, la structure de la fonction va agir sur n'importe quel paramètre que je lui passe, sans égard pour la valeur ni pour le nom. C'est ça ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Nom : pipe-magritte.jpg
Affichages : 127
Taille : 16,5 Ko

    Tu confonds l'objet avec sa représentation.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Points : 1 385
    Points
    1 385
    Par défaut
    Citation Envoyé par Alorslaçaprogramme Voir le message
    ...
    Donc en fait, la fonction ne décrit qu'une structure d'action, sans tenir compte des noms des paramètres. Ceux-ci n'y figurent que pour la forme, parce qu'ils font partie de la structure, mais peu importe le fond, en l'occurrence leur nom ?

    En clair, je crée une fonction avec un nom de paramètre quelconque uniquement afin de stipuler à la fonction qu'il y a un paramètre (sans quoi ça plante ?), et ensuite, la structure de la fonction va agir sur n'importe quel paramètre que je lui passe, sans égard pour la valeur ni pour le nom. C'est ça ?
    Le nom des paramètres importe peu (mais il est important pour que quelqu'un puisse comprendre le code) ; il faut seulement qu'il reste le même à chaque opération effectuée dessus.
    Une fonction peut ne pas avoir de paramètre, ou en avoir plusieurs.

    Une fonction est une série d'actions pouvant être appelée (donc répétée) n'importe où dans le programme. C'est comme faire un copier coller du code de la fonction en remplaçant les noms des paramètres par ceux des variables du programme.

  7. #7
    Inactif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 37
    Points : 13
    Points
    13
    Par défaut
    Le choix du nom de la variable passée en paramètre est donc utile à la compréhension de la fonction, c'est tout.
    En fait, en pratique, le cas de figure de mon exemple n'arrive jamais, c'est ça ?
    C'est juste une souplesse de php, mais non usitée. J'ai bon ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Points : 1 385
    Points
    1 385
    Par défaut
    Votre exemple est un cas classique : un paramètre est passé à une fonction pour en faire quelque chose.

    Pour une définition d'une fonction, vous pouvez lire Wikipédia : http://fr.wikipedia.org/wiki/Fonction_informatique

  9. #9
    Inactif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 37
    Points : 13
    Points
    13
    Par défaut
    Ok.

    Oui remarque somme toute, c'est assez pratique. On écrit la fonction une fois, puis on peut s'en servir pour toutes les variables du site, y compris pour celles issues des nouveaux scripts ajoutés ultérieurement.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Alorslaçaprogramme,
    C'est ça, tu as tout bon !


    Un conseil néanmoins : ne passe pas tout de suite à la POO (Programmation Orientée Objet)...

  11. #11
    Inactif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 37
    Points : 13
    Points
    13
    Par défaut
    Non mais en fait, je connais déjà php/mysql. Par contre je n'ai pas programmé depuis un an ou deux et surtout, je n'ai jamais utilisé les fonctions personnalisées. Donc je dois combler cette lacune et ensuite, je pourrai m'attaquer à POO.

    J'aurai donc, je pense, l'occasion de revenir avec d'autres questions...

    Encore merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pourquoi cette fonction ne fonctionne pas correctement
    Par cabiste007 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 09/04/2015, 21h08
  2. Réponses: 13
    Dernier message: 31/07/2013, 11h25
  3. pourquoi cette fonction ne marche pas?
    Par kazannova dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/04/2008, 01h59
  4. Réponses: 3
    Dernier message: 04/03/2007, 09h34
  5. [BCB5][FB1.5]Pourquoi cette commande ne fonctionne pas ?
    Par Sitting Bull dans le forum Débuter
    Réponses: 1
    Dernier message: 17/11/2004, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo