bonsoir a tous :)
à chaque fois j'ai reçu cette erreur et j'arrive pas à détecté ou il exsiste le problème
l'erreur est :
" Fatal error: Using $this when not in object context in C:\wamp\www\php OOP\ooplr\classes\Fonction.php on line 22"
le code :
Fonction.php
<?php
class Fonction {
private $_db;
public function __construct() {
$this->_db = DB::getInstance();
}
public function create($fields = array()) {
if (!$this->_db->insert('fonction', $fields)) {
throw new Exception('There was a problem creating an account!');
}
}
public function getLibelle(){
//lire libelle
$this->_db->action('select libelle', 'fonction', $array());
}
public static function getId($libelle){
//lire identificateur
$lib = $this->getLibelle();
while ($res= mysql_fetch_array($lib)){
if($res === $libelle){
$res = $this->_db->action('select id', 'fonction', $array());
}
}
}
}
?>
register_inter.php
<?php
require_once('libraries/Page.php');
$page = new Page;
$page->setTitle('Contact');
$page->startBody();
?>
<?php
require_once 'core/init.php';
require_once 'classes/Intevenant.php';
if (Input::exists()) {
if (Token::check(Input::get('token'))) {
Session::flash('home', 'You have been registred and you can now log in!');
Redirect::to('index.php');
} catch (Exception $e) {
die($e->getMessage());
}
Tu utilises $this dans une fonction statique.
Or $this désigne l'instance courante d'une classe (un objet), et par définition une fonction statique ne se réfère à aucune instance (aucun objet).
$this n'a donc aucun sens à l'intérieur d'une méthode statique, et y est explicitement interdit :
https://www.php.net/manual/fr/language.oop5.static.php