Salut à tous,
Ce post m'a paru très intéressant, du coup, je me suis livré à qqs expériences et comparaisons entre PHP et C#. J'ai trouvé un comportement différent entre les deux langages au niveau de l'appel des classes.
Si quelqu'un peut m'expliquer le pourquoi de cette différence de comportement et surtout quel langage est "juste" ?
Ci-dessous le code PHP :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
<?php
//classe normale
class job_A
{
public function doIt()
{
return "Just do it !<br>";
}
}
//classe abstraite
abstract class job_B
{
public static function doThat()
{
return "Just do that !<br>";
}
}
//appel d'une classe normale
$job = new job_A();
echo $job->doIt();
//appel de façon abstraite d'une classe normale (bug ??)
echo job_A::doIt();
//appel d'une classe abstraite
echo job_B::doThat();
?> |
Ce que je trouve "bizarre" c'est que l'on puisse appeler une classe dite "normale", comme si on appellait une classe abstraite.
Ci-dessous le même code en C# où la ligne
echo job_A::doIt(); en PHP n'a aucune équivalence (où en tous cas je ne l'ai pas trouvé !).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
//classe normale
public class job_A
{
public string doIt()
{
return "Just do it !";
}
}
//classe abstraite
abstract class job_B
{
//mot-clé "static" obligatoire !
public static string doThat()
{
return "Just do that !";
}
}
//appel de la classe normale
job_A job = new job_A();
this.textBox1.Text = job.doIt();
//appel de la classe abstraite
this.textBox2.Text = job_B.doThat(); |
Merci d'avance pour vos réponses,
Lionel.