Bonjour,

en procédural, je faisais include_once dirname(__DIR__)."\language.".$lang.".inc.php"; et donc selon la valeur de $lang, le tableau $str avait des valeurs traduites dans la bonne langue (par exemple $str['home'] valait 'Accueil' en fr et 'Home' en english).

Voici ce que j'ai essayé en POO :
class_lang.php :
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
15
16
17
18
19
20
21
22
23
<?php
namespace _classes;
class class_lang {
public $str;
public $lang;
 
public function __construct() {}
 
public function init_lang() {
    switch ($this->lang){
        case 'fr':
            $this->str['home']='Accueil';
        break;
 
        case 'en':
            $this->str['home']='Home';
        break;
    }
}    
 
 
}
?>

index.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
use _classes\squelette;
use _classes\class_lang;
 
$footer  = new squelette();
$lang = new class_lang();
$this->lang='fr';
$lang->init_lang();
 
$footer->disp_footer();

La classe squelette contient notamment $footer (la propriété a le même nom que l'objet)

et
Fatal error: Uncaught Error: Using $this when not in object context in C:\wamp64\www\eis32_oo\index.php on line 12
La ligne 12 de index.php est ici la 6.

Qu'est-ce qui ne va pas ?