[RESOLU] Question de base vraiment simple... je crois!!!

Eléphant du PHP | 129 Messages

10 avr. 2021, 03:36

Bonjour, je commence à faire du POO et j'ai écouté plusieurs vidéos et lu sur je ne sais combien de site web pour comprendre la base et je n'arrive pas à comprendre un détail qui est surement très simple. Je vous explique. Supposons que je veux travailler avec le mvc. Je crée une classe test.class.php où il y aura entre autre ma connexion à la base de données (que je ne mettrai pas ici pour simplifier).
<?php
class Test {
	public $id;
}
Je crée ensuite une classe testView.class.php pour l'affichage
<?php
class TestView extends Test {
public $id;

public function ViewId() {
	return $this->id;}
}
et finalement une classe test.contr.class.php pour le contrôle.
<?php

class TestContr extends Test{
public $id;


public function setId($id) {
$this->id=$id;
}

}
Je me construit un objet dans un fichier...appelons-le index.php
<?php
require ('test.class.php');
require ('testView.class.php');
require ('testContr.class.php');

$id="25";
$no_user = New Test();
$no_user->setId($id);
$affUserId = New TestView();
echo $no_user->ViewId();
?>

Voilà où je bloque dans ma compréhension... J'ai l'impression de créer un objet de la classe Test. J'attribue une valeur 25 à l'id de cet objet ($no_user). Ensuite je veux récupérer l'id de l'objet et évidemment, ça ne fonctionne pas. Quelqu'un peut m'aider à y voir plus clair???

Mammouth du PHP | 2215 Messages

10 avr. 2021, 13:36

$no_user est un objet de la class Test. la class Test n'a pas de fonction setId, n'a pas de fonction ViewId, donc
$no_user->setId($id); renvoie une erreur.
echo $no_user->ViewId(); renvoie une erreur

$affUserId est un objet de la class TestView. cette class a une fonction ViewId qu'il est donc possible d’appeler ainsi :
$affUserId->ViewId();
mais cela n'a pas d’intérêt car la valeur d'id de l'objet $affUserId n'a jamais été défini, car il n'y a pas de fonction pour définir une valeur à un objet de cette class.

Eléphant du PHP | 129 Messages

11 avr. 2021, 13:36

Merci, j'ai compris ce bout-là! Je progresse... Je crois!!!