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 :

définir une closure dans une classe [POO]


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut définir une closure dans une classe
    Bonsoir,

    dans une classe, j'utilise une closure dont la définition est la suivante :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $page = function ( string $msg ): PhpEcho
    {
        // on renvoie le formulaire d'upload en indiquant un message
        $page = new PhpEcho([DIR_ROOT,
            'view Layout.php']);
        $page->addChild('body',
            'view FormUpload.php',
            ['msg' => $msg]);
        return $page;
    };
    (la closure utilise la classe PhpEcho qui est bien incluse).

    Pour aller au plus simple, j'ai inclus la définition de la closure dans la classe de la manière suivante :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class CSVInBDD
    {
    private $page = function ( string $msg ): PhpEcho
    {
        // on renvoie le formulaire d'upload en indiquant un message
        $page = new PhpEcho([DIR_ROOT,
            'view Layout.php']);
        $page->addChild('body',
            'view FormUpload.php',
            ['msg' => $msg]);
        return $page;
    };
    suite de la définition de la classe
    }
    La closure étant affectée à une variable, je l'ai attribuée à une propriété de la classe. C'est visiblement non autorisé :
    Fatal error: Constant expression contains invalid operations in C:\xampp\htdocs\www\ticket_rawsrc\model\CSVInBDD.php on line 15
    Comment faut-il faire SVP ?

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    L'exemple est sans doute pas suffisant , mais je vois pas l'intérêt de la closure dans ce que tu nous montre

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Il faudrait dire ça à rawsrc comme c'est son code ! Cela dit, craignant une difficulté à la faire marcher, j'ai changé la closure en méthode...

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

Discussions similaires

  1. Définir une classe css dans le code jquery.
    Par piotrr dans le forum jQuery
    Réponses: 9
    Dernier message: 27/07/2009, 11h56
  2. Définir une Classe triangle
    Par Pingouin22 dans le forum C++
    Réponses: 13
    Dernier message: 16/10/2007, 10h07
  3. Réponses: 19
    Dernier message: 14/08/2007, 14h41
  4. Définir une classe dans une autre classe
    Par acieroid dans le forum C++
    Réponses: 7
    Dernier message: 21/05/2006, 23h24
  5. Définir une class comme élement graphique
    Par Janitrix dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 14/11/2005, 22h41

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