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 ?