Imbrication de class en php
nickleus
Messages postés
384
Statut
Membre
-
nickleus Messages postés 384 Statut Membre -
nickleus Messages postés 384 Statut Membre -
Bonjour,
voila mon code :
je souhaite faire en sorte que ça me retourne la valeur de la multiplication de la méthode de la class __2 que si la méthode de la class __1 retourne true.
et tout cela en imbriquant mes objets.
merci infiniment d'avance
voila mon code :
class __1
{
public function testVar($var) {
if(is_numeric($var)) {
return $var;
}
}
}
class __2
{
public function mul($var){
return 2*$var;
}
}
class __3
{
public function display($var) {
echo '<p>'.$var.'</p>';}
}
$var = '10';
$test1 = new __1();
$test1 -> test2 = new __2();
print_r($test1->test2->mul($var));
je souhaite faire en sorte que ça me retourne la valeur de la multiplication de la méthode de la class __2 que si la méthode de la class __1 retourne true.
et tout cela en imbriquant mes objets.
merci infiniment d'avance
A voir également:
- Imbrication de class en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel de classement de photos gratuit - Guide
- Logiciel de classement de documents gratuit - Télécharger - Bureautique
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
3 réponses
J'aurais plutôt fais ça :
class __1
{
public function testVar($var) {
return is_numeric($var);
}
}
class __2 extends __1
{
public function mul($var){
if ($this->testVar($var))
return 2*$var;
else
return false;
}
}
$var = '10';
$test = new __2();
print_r($test->mul($var)); Si tu veux vraiment imbriquer tes objets sans héritage, alors tu n'as pas d'autre choix que de rendre accessible la classe contenante au contenu par exemple :
class __1
{
public function testVar($var) {
return is_numeric($var);
}
}
class __2
{
function__construct($container){
if (method_exists($container, 'testVar')
$this->container = $container;
else
echo "TODO : gestion d'erreur";
}
public function mul($var){
if ($this->container->testVar($var))
return 2*$var;
else
return false;
}
}
$var = '10';
$test1->test2 = new __2($test1);
print_r($test1->test2->mul($var));
Ta deuxième solution m'intéresse beaucoup :) :) :) :)
Mais est-il possible de généraliser un peu plus la class __2. C'est dire que je veux pouvoir utiliser n'importe quel méthode de la class __1 sans forcément à devoir déclarer la méthode par la fonction : method_exists();
je début en la matière et j'ai vus un truc de ce genre (je ne dit pas que le code suivant en bon):
function__construct(&$test1){
}
j'ai cru comprendre (mais je peux me tromper) que ça permettait de faire la même chose ? Non ?
Par contre je ne sais pas comment.
Y a t'il une solution pour généraliser la class ?
Merci encore pour ta réponse.
Mais est-il possible de généraliser un peu plus la class __2. C'est dire que je veux pouvoir utiliser n'importe quel méthode de la class __1 sans forcément à devoir déclarer la méthode par la fonction : method_exists();
je début en la matière et j'ai vus un truc de ce genre (je ne dit pas que le code suivant en bon):
class __1
{
public function testVar($var) {
return is_numeric($var);
}
}
class __2
{
function__construct(&$test1){
}
public function mul($var){
if ($this->container->testVar($var))
return 2*$var;
else
return false;
}
}
$var = '10';
$test1->test2 = new __2($test1);
print_r($test1->test2->mul($var));
j'ai cru comprendre (mais je peux me tromper) que ça permettait de faire la même chose ? Non ?
Par contre je ne sais pas comment.
Y a t'il une solution pour généraliser la class ?
Merci encore pour ta réponse.